我们正在构建一个Outlook插件,我们正在尝试使用以下步骤执行身份验证流程:
Office.context.ui.displayDialogAsync()
打开一个对话框,其中包含OAuth登录页面的网址(此页面的网址也会添加到我们的清单的“AppDomains”标记中,此外还包含我们的插件)。 <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加载到办公室客户端之外的重定向页面中。但是,重定向页面与我们的插件属于同一个域。
我们希望对此有所了解以及如何解决此问题。谢谢!