Office.context.ui.messageParent 在 Mac 的 Outlook 2016 中是否损坏?
Is Office.context.ui.messageParent broken in Outlook 2016 for Mac?
我正在使用新的 Office-JS apis 开发 Outlook 插件,在构建身份验证流程时,我发现在 Mac 的 Outlook 2016 案例中, 对话系统似乎无法正常工作
明确地说,我们正在使用 Office Insider Fast Track 版本,因为它大大改进了对 Office-JS 的支持 API。
我已经完成了这个特定部分的多次迭代(其中大部分在 Windows 客户端和 Mac 和 Win 上的 Web 客户端都运行良好),但没有成功.场景是:
- 列表项
- 在 Outlook 中打开任务窗格。
- 点击登录按钮
- 一个新的 window 打开,指向我们的身份验证门户
- 用户登录。
- 身份验证完成后,window 重定向到 office 加载项范围内的页面,并使用身份验证令牌回调到父框架,以便进一步处理。
步骤 1 到 5 在所有平台上都能正常工作。第 6 步拒绝在 Mac 的 Outlook 上工作。最初,此流程是使用原生 js window.open 和 window.postMessage apis 构建的。如上所述,除了 Outlook Mac,这在任何地方都有效,其中 API 似乎忽略了 window 选项,只是在任何浏览器的新选项卡中打开 url打开并且从不设置子 window 引用(window.open 为空的结果)。
如果做不到这一点,我按照 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 界面,但显示了我的控制台输出的 none,这使得 JS 似乎没有 运行ning全部.
此时我不确定接下来要尝试什么。有没有人 运行 解决这个问题,或者让这个在 Mac 客户端的 Outlook 2016 上工作?
澄清上下文:
- 所有授权页面都列在清单的 AppDomains 部分。
- 虽然初始版本直接指向我们的身份验证服务(这不适用于 Mac),但当前版本首先打开一个范围内的预身份验证页面,该页面重定向到身份验证服务。
- Office-JS api 阻止警报,阻止它们用于显示有用信息。
- 通过此应用程序的所有版本进行的身份验证在 Windows 的 Outlook 2016 和 Win 和 Mac 的 OWA 上均有效。
谢谢。
Outlook Mac 中的这个问题已在几个月前修复。如果有人在最近的 Outlook Mac 版本中仍然遇到此问题,请回复并提供版本号。
Office.context.ui 在 Mac 2016 的 Outlook v16.17 (180909) 版本中未定义,使用以下 OfficeJS 分布:
https://appsforoffice.microsoft.com/lib/1/hosted/office.js
我正在使用新的 Office-JS apis 开发 Outlook 插件,在构建身份验证流程时,我发现在 Mac 的 Outlook 2016 案例中, 对话系统似乎无法正常工作
明确地说,我们正在使用 Office Insider Fast Track 版本,因为它大大改进了对 Office-JS 的支持 API。
我已经完成了这个特定部分的多次迭代(其中大部分在 Windows 客户端和 Mac 和 Win 上的 Web 客户端都运行良好),但没有成功.场景是:
- 列表项
- 在 Outlook 中打开任务窗格。
- 点击登录按钮
- 一个新的 window 打开,指向我们的身份验证门户
- 用户登录。
- 身份验证完成后,window 重定向到 office 加载项范围内的页面,并使用身份验证令牌回调到父框架,以便进一步处理。
步骤 1 到 5 在所有平台上都能正常工作。第 6 步拒绝在 Mac 的 Outlook 上工作。最初,此流程是使用原生 js window.open 和 window.postMessage apis 构建的。如上所述,除了 Outlook Mac,这在任何地方都有效,其中 API 似乎忽略了 window 选项,只是在任何浏览器的新选项卡中打开 url打开并且从不设置子 window 引用(window.open 为空的结果)。
如果做不到这一点,我按照 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 界面,但显示了我的控制台输出的 none,这使得 JS 似乎没有 运行ning全部.
此时我不确定接下来要尝试什么。有没有人 运行 解决这个问题,或者让这个在 Mac 客户端的 Outlook 2016 上工作?
澄清上下文:
- 所有授权页面都列在清单的 AppDomains 部分。
- 虽然初始版本直接指向我们的身份验证服务(这不适用于 Mac),但当前版本首先打开一个范围内的预身份验证页面,该页面重定向到身份验证服务。
- Office-JS api 阻止警报,阻止它们用于显示有用信息。
- 通过此应用程序的所有版本进行的身份验证在 Windows 的 Outlook 2016 和 Win 和 Mac 的 OWA 上均有效。
谢谢。
Outlook Mac 中的这个问题已在几个月前修复。如果有人在最近的 Outlook Mac 版本中仍然遇到此问题,请回复并提供版本号。
Office.context.ui 在 Mac 2016 的 Outlook v16.17 (180909) 版本中未定义,使用以下 OfficeJS 分布: https://appsforoffice.microsoft.com/lib/1/hosted/office.js