如何在WOPI中使用Discovery XML?
How to use Discovery XML in WOPI?
正如本文档http://wopi.readthedocs.io/en/latest/discovery.html中提到的,我想知道是否有一种方法可以动态地使用操作URL?
"dynamically" 是什么意思?
加载 discovery file 时,您可以通过替换 <ui=UI_LLCC&>
.
等占位符来动态构建操作 URL
这是我的 C# code,应该可以轻松转换为 Java:
public async Task<string> GetFileUrlAsync(string extension, string wopiFileUrl, WopiActionEnum action, WopiUrlSettings urlSettings = null)
{
var combinedUrlSettings = new WopiUrlSettings(urlSettings.Merge(UrlSettings));
var template = await WopiDiscoverer.GetUrlTemplateAsync(extension, action);
if (!string.IsNullOrEmpty(template))
{
// Resolve optional parameters
var url = Regex.Replace(template, @"<(?<name>\w*)=(?<value>\w*)&*>", m => ResolveOptionalParameter(m.Groups["name"].Value, m.Groups["value"].Value, combinedUrlSettings));
url = url.TrimEnd('&');
// Append mandatory parameters
url += "&WOPISrc=" + Uri.EscapeDataString(wopiFileUrl);
return url;
}
return null;
}
请注意,WopiUrlBuilder uses WopiDiscoverer 有助于对发现文件进行低级操作。
正如本文档http://wopi.readthedocs.io/en/latest/discovery.html中提到的,我想知道是否有一种方法可以动态地使用操作URL?
"dynamically" 是什么意思?
加载 discovery file 时,您可以通过替换 <ui=UI_LLCC&>
.
这是我的 C# code,应该可以轻松转换为 Java:
public async Task<string> GetFileUrlAsync(string extension, string wopiFileUrl, WopiActionEnum action, WopiUrlSettings urlSettings = null)
{
var combinedUrlSettings = new WopiUrlSettings(urlSettings.Merge(UrlSettings));
var template = await WopiDiscoverer.GetUrlTemplateAsync(extension, action);
if (!string.IsNullOrEmpty(template))
{
// Resolve optional parameters
var url = Regex.Replace(template, @"<(?<name>\w*)=(?<value>\w*)&*>", m => ResolveOptionalParameter(m.Groups["name"].Value, m.Groups["value"].Value, combinedUrlSettings));
url = url.TrimEnd('&');
// Append mandatory parameters
url += "&WOPISrc=" + Uri.EscapeDataString(wopiFileUrl);
return url;
}
return null;
}
请注意,WopiUrlBuilder uses WopiDiscoverer 有助于对发现文件进行低级操作。