我们的团队一直在调查与 Outlook Online 相关的问题并加载我们的加载项。我们的问题似乎是我们在登录时有一个对话框(设置为不显示在框架中),成功登录后,它会在任务窗格中向我们的组件发送登录信息以及关闭所述对话框的说明。
我们一直遇到的是对话框没有关闭,消息也没有发送给父级。没有错误日志或网络输出表明登录不成功,因此作为我们执行的一组调查的一部分,我们创建了一个测试应用程序,它只专注于从任务窗格打开和关闭一个对话框。
我们之前的调查表明,我们的加载项在所有浏览器中对 Word、Excel 和 PowerPoint Online 执行了所描述的行为,但对于 Outlook Online,对话框仅成功关闭并在 IE11 和 Edge 中向任务窗格组件发送消息。对于 Outlook Online,我们确认它在 Chrome、Safari、Firefox 和 Edge Chromium 中无法正常工作(这些是我们在 IE11 和 Edge 之外测试的浏览器)。
为了减少此问题可能由我们这边的某些逻辑引起的可能性,我们制作了您可以在此处找到的测试应用程序(包含自述文件以帮助进行此调查)。我们测试了打开一个对话框 -将其设置为不在框架中显示 - 然后单击对话框中的一个按钮,该按钮将消息发送回父级。
如果父级收到此消息,它将调用dialog.close()并且对话框弹出窗口将关闭。根据我们的发现,我们可以确定以下内容:
- 将代码侧加载到 Word Online 中,在 Edge 和 Chrome 中执行测试,它按预期工作并且对话框关闭。这表明App.tsx文件从触发关闭操作的对话框接收到消息。
- 现在,将相同的加载项侧加载到 Outlook Online 中,测试在 Edge 测试中成功。对于 Chrome 中的测试,App.tsx没有收到来自对话框的消息,这意味着对话框没有关闭。
我们还通过托管应用程序以及在我们的一台开发机器上本地运行它来测试这一点,并遇到了同样的问题。任何地方都没有错误输出,所以我们有点不知道该往哪里推进。
我们可能认为我们可能必须采取不同的方法才能在不同环境中为 Outlook Online 工作,但我们不确定我们必须有哪些选项来解决这个问题。可能不同的另一件事是我们在 Outlook 清单文件中缺少配置(您也可以在链接的存储库中找到该文件,该文件称为manifest.xml - 我们用于测试 office 的清单称为manifest_office .xml)。
我们将不胜感激链接回购中关于我们可能出错的地方的任何意见。