我正在使用新的Office-JS API进行Outlook插件,并且在构建身份验证流程中,我发现在Outlook 2016 for Mac情况下,对话系统似乎无法正常工作。在Outlook 2016 for Mac中,Office.context.ui.messageParent是否被破解?
为了清楚起见,我们使用Office Insider Fast Track构建,因为它对Office-JS API有很多改进的支持。
我已经经历了这个特定部分的多次迭代(其中大部分在Windows客户端和Mac和Win上的Web客户端都能正常工作),并且没有运气。该方案是:
- 列表项
- 在Outlook中打开任务窗格。
- 点击登录按钮
- 打开新窗口,在指着我们的验证门户
- 用户的迹象。
- 在身份验证完成后,窗口重定向到一个页面在办公室外接范围,使用身份验证令牌回拨至父框架,可在其中进一步处理。
步骤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的Mac客户端?
澄清背景:
- 所有身份验证页中列出了清单的应用程序域部分。
- 尽管初始版本直接指向我们的auth服务(这不是Mac工作的),但当前版本首先打开一个范围内的pre-auth页面,该页面重定向到auth服务。
- Office-JS api的阻止警报,阻止它们用于显示有用的信息。
- 通过此应用程序的所有版本进行身份验证都适用于Windows上的Outlook 2016和Win和Mac上的OWA。
谢谢。
这听起来像你正在做的一切正确。 (如果你还没有,你可能想阅读:https://dev.office.com/docs/add-ins/develop/dialog-api-in-office-add-ins)。另外,我们有一篇关于在Mac上使用Vorlon的最新文章:https://dev.office.com/docs/add-ins/testing/debug-office-add-ins-on-ipad-and-mac –
有些问题:(1)你是否说第6步不起作用,是否意味着你没有重定向到本地页面,或者你的意思是本地页面打开,但是messsageParent似乎不起作用? (2)您的DialogMessageReceived处理程序是否执行任何会给您提供运行视觉指示的内容,例如关闭对话框? (3)如果你找不到方法来查看console.logs,你可以尝试在相关页面中放入一个div,并“登录”到div的文本属性。 –
对不起,我应该更清楚。是的,重定向工作,但没有一个Javascript似乎做...什么。我没有想过用日志信息写出一个Div,至少可以提供_some_类的上下文。收到的消息从来没有触发。感谢这些链接,那些是我早期用来试图找到可能出错的那些链接。 切线方向,我试图设置窗口关闭时的事件处理程序,但似乎并没有在_any_平台上触发。 – Ava