我正在使用新的Office-JS apis开发Outlook插件,并且在构建身份验证流程时,我发现在Outlook 2016 for Mac案例中,对话框系统似乎无法正常工作 .
为了清楚起见,我们正在使用Office Insider Fast Track构建,因为它大大改进了对Office-JS API的支持 .
我经历了这个特定部分的几次迭代(其中大多数在Windows客户端和Mac和Win上的Web客户端都运行良好),并且没有运气 . 场景是:
-
列出项目
-
在Outlook中打开任务窗格 .
-
点击登录按钮
-
打开一个新窗口,指向我们的身份验证门户
-
用户登录 .
-
在auth完成时,窗口重定向到office外接作用域中的页面,并使用auth令牌回调父帧,可以在其中进一步处理 .
步骤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 .
谢谢 .
1 回答
几个月前,Outlook Mac中的此问题已得到修复 . 如果有人在最近的Outlook Mac版本中仍然遇到此问题,请回复内部版本号 .