13

我正在使用新的 Office-JS api 开发 Outlook 插件,并且在构建身份验证流程时,我发现在 Outlook 2016 for Mac 案例中,对话系统似乎无法正常工作。

需要明确的是,我们使用的是 Office Insider Fast Track 版本,因为它对 Office-JS API 的支持有了很大改进。

我已经经历了这个特定部分的多次迭代(其中大部分在 Windows 客户端和 Mac 和 Win 上的 Web 客户端都运行良好),但没有运气。场景是:

  1. 项目清单
  2. 在 Outlook 中打开任务窗格。
  3. 点击登录按钮
  4. 一个新窗口打开,指向我们的身份验证门户
  5. 用户登录。
  6. 身份验证完成后,窗口将重定向到 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。

谢谢你。

4

2 回答 2

3

Outlook Mac 中的此问题已在几个月前修复。如果有人在最​​近的 Outlook Mac 内部版本中仍然遇到此问题,请回复内部版本号。

于 2017-07-19T10:17:57.443 回答
0

Office.context.ui 在 v16.17 (180909) 版本的 Outlook for Mac 2016 中未定义,使用以下 OfficeJS dist: https ://appsforoffice.microsoft.com/lib/1/hosted/office.js

于 2019-02-04T06:34:34.570 回答