我正在使用新的 Office-JS api 开发 Outlook 插件,并且在构建身份验证流程时,我发现在 Outlook 2016 for Mac 案例中,对话系统似乎无法正常工作。
需要明确的是,我们使用的是 Office Insider Fast Track 版本,因为它对 Office-JS API 的支持有了很大改进。
我已经经历了这个特定部分的多次迭代(其中大部分在 Windows 客户端和 Mac 和 Win 上的 Web 客户端都运行良好),但没有运气。场景是:
- 项目清单
- 在 Outlook 中打开任务窗格。
- 点击登录按钮
- 一个新窗口打开,指向我们的身份验证门户
- 用户登录。
- 身份验证完成后,窗口将重定向到 office 加载项范围内的页面,并使用身份验证令牌回调父框架,在那里可以对其进行进一步处理。
步骤 1 到 5 在所有平台上都可以正常工作。第 6 步拒绝在 Outlook for Mac 上工作。最初,此流程是使用原生 js window.open 和 window.postMessage api 构建的。如上所述,这在任何地方都有效,但 Outlook Mac,API 似乎忽略了窗口选项,只是在打开的任何浏览器的新选项卡中打开 url,并且从不设置子窗口引用(window.open 的结果为 null )。
如果做不到这一点,我按照此处关于 SO 的建议使用 Office 功能、displayDialogAsync 和 messageParent。在经历了一些最初的障碍之后,这也被设置并在每个平台上运行,除了 Outlook Mac。
由于 Mac Outlook 中没有开发工具或 JS 控制台支持,我遵循了此处的建议Howto:Outlook 2016 for Mac - 在 Outlook 插件中调试/查看控制台日志并设置 Vorlon 以尝试获取一些上下文,添加大量日志记录点尝试获取一些上下文。不幸的是,虽然 Vorlon 确实选择了我作为客户端的身份验证登录页面,并看到了 Office 界面,但我的控制台输出都没有显示,这使得 JS 看起来好像根本没有运行。
在这一点上,我不确定下一步该尝试什么。有没有人遇到过这个问题,或者让它在 Outlook 2016 for Mac 客户端上运行?
澄清背景:
- 所有身份验证页面都列在 Manifest 的 AppDomains 部分中。
- 虽然初始版本直接指向我们的身份验证服务(这不适用于 Mac),但当前版本首先打开了一个范围内的预身份验证页面,该页面重定向到身份验证服务。
- Office-JS api 的阻止警报,阻止它们用于显示有用的信息。
- 通过此应用程序的所有版本进行的身份验证均适用于 Windows 上的 Outlook 2016 和 Win 和 Mac 上的 OWA。
谢谢你。