Outlook Online - 对话框问题
Outlook Online - Dialog Issues
我们的团队一直在调查我们这边与 Outlook Online 和加载我们的加载项相关的问题。我们的问题似乎是我们在登录时有一个对话框(设置为不在框架中显示),在成功登录后,它会在任务窗格中向我们的组件发送消息,其中包含登录信息以及关闭所述对话框的说明。
我们遇到的问题是对话框没有关闭,消息也没有发送给家长。没有登录失败的错误日志或网络输出,因此作为我们执行的一组调查的一部分,我们创建了一个测试应用程序,它只专注于从任务窗格打开和关闭对话框。
我们之前的调查表明,我们的加载项在所有浏览器中对 Word、Excel 和 PowerPoint Online 执行了所描述的行为,但对于 Outlook Online,对话框仅成功关闭并向任务窗格组件发送了消息在 IE11 和 Edge 中。对于 Outlook Online,我们确认它在 Chrome、Safari、Firefox 和 Edge Chromium(这些是我们测试的除 IE11 和 Edge 之外的浏览器)中没有按预期工作。
为了减少此问题可能由我们这边的某些逻辑引起的可能性,我们制作了您可以找到的测试应用程序 here(包含帮助调查的自述文件)。我们测试了打开一个对话框——将其设置为不在框架中显示——然后单击对话框中的一个按钮,该按钮将消息发送回父级。
如果父级收到此消息,它将调用 dialog.close() 并且对话框弹出窗口将关闭。根据我们的发现,我们可以确定以下内容:
- 将代码侧面加载到 Word Online 中,在 Edge 和 Chrome 中执行测试,它按预期工作并且对话框关闭。这表明 App.tsx 文件收到了来自触发关闭操作的对话框的消息。
- 现在,将相同的加载项旁加载到 Outlook Online 中,在 Edge 测试中测试成功。对于Chrome中的测试,App.tsx没有收到对话框的消息,反过来这意味着对话框没有关闭。
我们还通过托管应用程序以及 运行 在我们的一台开发机器上进行本地测试,并遇到了同样的问题。任何地方都没有错误输出,所以我们有点不知该往哪里推进。
可能我们认为我们可能必须以不同的方式处理这个问题才能在不同的环境中使用 Outlook Online,但我们不确定我们有什么选择可以解决这个问题。另一件可能不同的事情是我们在 Outlook 的清单文件中缺少一个配置(您也可以在链接的存储库中找到它,该文件名为 manifest.xml – the manifest we used to test office is called manifest_office.xml)。
我们将不胜感激链接回购中关于我们可能出错的地方的任何意见。
Outlook JS(根据文档正确地)要求 AppDomains 中的每个条目都有一个协议。 manifest.xml 中的第一个条目似乎也出现在许多尚未更新以符合文档的 github 示例中,是 contoso.com,它没有说明协议。在检查它是否会向父级 window 发送消息时,这个 contoso.com 没有协议声明的条目会短路测试任何进一步的 AppDomain 条目,并且不会发送任何消息。请删除 contoso.com 并验证每个 AppDomain 条目是否包含协议,即 https://example.com
我们的团队一直在调查我们这边与 Outlook Online 和加载我们的加载项相关的问题。我们的问题似乎是我们在登录时有一个对话框(设置为不在框架中显示),在成功登录后,它会在任务窗格中向我们的组件发送消息,其中包含登录信息以及关闭所述对话框的说明。
我们遇到的问题是对话框没有关闭,消息也没有发送给家长。没有登录失败的错误日志或网络输出,因此作为我们执行的一组调查的一部分,我们创建了一个测试应用程序,它只专注于从任务窗格打开和关闭对话框。
我们之前的调查表明,我们的加载项在所有浏览器中对 Word、Excel 和 PowerPoint Online 执行了所描述的行为,但对于 Outlook Online,对话框仅成功关闭并向任务窗格组件发送了消息在 IE11 和 Edge 中。对于 Outlook Online,我们确认它在 Chrome、Safari、Firefox 和 Edge Chromium(这些是我们测试的除 IE11 和 Edge 之外的浏览器)中没有按预期工作。
为了减少此问题可能由我们这边的某些逻辑引起的可能性,我们制作了您可以找到的测试应用程序 here(包含帮助调查的自述文件)。我们测试了打开一个对话框——将其设置为不在框架中显示——然后单击对话框中的一个按钮,该按钮将消息发送回父级。
如果父级收到此消息,它将调用 dialog.close() 并且对话框弹出窗口将关闭。根据我们的发现,我们可以确定以下内容:
- 将代码侧面加载到 Word Online 中,在 Edge 和 Chrome 中执行测试,它按预期工作并且对话框关闭。这表明 App.tsx 文件收到了来自触发关闭操作的对话框的消息。
- 现在,将相同的加载项旁加载到 Outlook Online 中,在 Edge 测试中测试成功。对于Chrome中的测试,App.tsx没有收到对话框的消息,反过来这意味着对话框没有关闭。
我们还通过托管应用程序以及 运行 在我们的一台开发机器上进行本地测试,并遇到了同样的问题。任何地方都没有错误输出,所以我们有点不知该往哪里推进。
可能我们认为我们可能必须以不同的方式处理这个问题才能在不同的环境中使用 Outlook Online,但我们不确定我们有什么选择可以解决这个问题。另一件可能不同的事情是我们在 Outlook 的清单文件中缺少一个配置(您也可以在链接的存储库中找到它,该文件名为 manifest.xml – the manifest we used to test office is called manifest_office.xml)。
我们将不胜感激链接回购中关于我们可能出错的地方的任何意见。
Outlook JS(根据文档正确地)要求 AppDomains 中的每个条目都有一个协议。 manifest.xml 中的第一个条目似乎也出现在许多尚未更新以符合文档的 github 示例中,是 contoso.com,它没有说明协议。在检查它是否会向父级 window 发送消息时,这个 contoso.com 没有协议声明的条目会短路测试任何进一步的 AppDomain 条目,并且不会发送任何消息。请删除 contoso.com 并验证每个 AppDomain 条目是否包含协议,即 https://example.com