代码之家  ›  专栏  ›  技术社区  ›  Ullas Hunka

如何在WOPI中使用发现XML?

  •  0
  • Ullas Hunka  · 技术社区  · 7 年前

    如本文件所述 http://wopi.readthedocs.io/en/latest/discovery.html ,我想知道是否有一种动态使用动作URL的方法?

    1 回复  |  直到 7 年前
        1
  •  2
  •   rocky    7 年前

    你所说的“动态”是什么意思?

    当你加载 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 使用 WopiDiscoverer 这有助于对发现文件进行低级操作。