在IE和Edge的对话框弹出窗口中获取“警告office.js在办公室客户端外部加载”

时间:2018-05-25 19:12:35

标签: office-js outlook-web-addins

我们正在构建一个Outlook插件,我们正在尝试使用以下步骤执行身份验证流程:

  1. 致电Office.context.ui.displayDialogAsync()打开一个对话框,其中包含OAuth登录页面的网址(此页面的网址也会添加到我们的清单的“AppDomains”标记中,此外还包含我们的插件)。
  2. 用户登录并触发身份验证。
  3. 完成后,OAuth流重定向回到插件的同一域下的页面。
  4. 3次调用[{3}}中的OAuth重定向页面,并将OAuth令牌发回给插件。以下是重定向页面的HTML内容。
  5. <script type="text/javascript" src="<URL to the server we host Office JS>/office.js"></script>
    <script type="text/javascript">
        Office.initialize = function () {
          Office.context.ui.messageParent(window.location.hash);
        };
    </script>
    

    这在Outlook 2016和Chrome上运行良好。 但是,它有时在IE11 / Edge上不起作用,在第4步中断。重定向页面无法执行Office.context.ui.messageParent()。我们看到发生这种情况时,在开发人员工具中有一个“警告office.js在办公室外部加载”,Office.context.ui似乎为空。

    我们还发现,关闭IE - &gt;互联网选项 - &gt;安全 - &gt; “启用保护模式”解决了这个问题。对于Edge,根据此Office.context.ui.messageParent(),无法关闭该模式。 (我们确实看到它在IE / Edge的某些实例中工作,即使启用此模式)。

    根据此page,看起来问题是“受保护模式”不允许office.js加载到办公室客户端之外的重定向页面中。但是,重定向页面与我们的插件属于同一个域。

    我们希望对此有所了解以及如何解决此问题。谢谢!

0 个答案:

没有答案