Outlook 2016 for Mac中Office.context.ui.messageParent是否已损坏?

时间:2017-03-04 02:32:48

标签: macos office-js office-addins outlook-2016 office-store

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

很明显,我们正在使用Office Insider Fast Track版本,因为它对Office-JS API提供了大大改进的支持。

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

  1. 列表项
  2. 在Outlook中打开任务窗格。
  3. 点击登录按钮
  4. 打开一个新窗口,指向我们的身份验证门户
  5. 用户登录。
  6. 在auth完成时,窗口会重定向到office加载项范围内的页面,并使用auth令牌回调父帧,然后可以对其进行进一步处理。
  7. 步骤1到5在所有平台上都能正常运行。第6步拒绝使用Outlook for Mac。最初,此流程是使用本机js window.open和window.postMessage apis构建的。如上所述,除了Outlook Mac之外,这种方式无处不在,其中,API似乎忽略了窗口选项,只是在任何打开的浏览器中打开新选项卡中的url并且从不设置子窗口引用(window.open的结果为null )。

    如果不这样做,我按照SO上的建议来使用Office功能,displayDialogAsync和messageParent。经过一些初步的障碍之后,这也是设置并在每个平台上运行,除了Outlook Mac。

    由于Mac Outlook中没有开发工具或JS控制台支持,我按照Howto: Outlook 2016 for Mac - Debugging/View Console Logs in Outlook Add-in中的建议进行操作,并设置Vorlon尝试获取一些上下文,添加大量日志记录点以尝试获取一些上下文。不幸的是,虽然Vorlon确实将我的身份验证登陆页面作为客户端,并且看到了Office界面,但我的控制台输出都没有显示出来,看起来好像JS根本没有运行。

    此时我不确定下一步该尝试什么。有没有人遇到过这个问题,或者让它在Outlook 2016 for Mac客户端上运行?

    澄清背景:

    • 所有身份验证页面都列在Manifest的AppDomains部分中。
    • 虽然初始版本直接指向我们的auth服务(这不适用于Mac),但当前版本首先会打开一个范围内的预认证页面,该页面会重定向到auth服务。
    • Office-JS api的阻止警报,阻止它们用于显示有用的信息。
    • 通过此应用的所有版本进行身份验证已在Windows上的Outlook 2016和Win和Mac上的OWA上运行。

    谢谢。

2 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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