Outlook 如何指定使用的Office.js的确切版本?
我们正在运行Outlook加载项,看起来Microsoft已将Office.js的版本从Outlook 如何指定使用的Office.js的确切版本?,outlook,office-js,office-addins,outlook-web-addins,office-store,Outlook,Office Js,Office Addins,Outlook Web Addins,Office Store,我们正在运行Outlook加载项,看起来Microsoft已将Office.js的版本从16.00更新为16.01:Outlook:{ios:“16.00”、mac:“16.00”、web:“16.01”、win32:“16.02”}(via) 其中一个变化似乎是对postMessage的抽象进行额外验证,以确保子/父域的域(包括子域)相同 由于我们在不同的子域上托管外接程序和中央身份验证服务器,因此,Outlook for web中的所有OAuth流都被破坏 outlook-web-16.01
16.00
更新为16.01
:Outlook:{ios:“16.00”、mac:“16.00”、web:“16.01”、win32:“16.02”}
(via)
其中一个变化似乎是对postMessage
的抽象进行额外验证,以确保子/父域的域(包括子域)相同
由于我们在不同的子域上托管外接程序和中央身份验证服务器,因此,Outlook for web中的所有OAuth流都被破坏
outlook-web-16.01.js:18未能在“DOMWindow”上执行“postMessage”:提供的目标源代码为('https://outlook.domain.com“”与收件人窗口的来源不匹配('https://auth.domain.com)
桌面Outlook(MacOS和Windows)不受影响
我们已经将清单文件中的域列为白名单:
<AppDomains>
<AppDomain>https://outlook.domain.com</AppDomain>
<AppDomain>https://outlook-staging.domain.com</AppDomain>
<AppDomain>https://auth.domain.com</AppDomain>
</AppDomains>
https://outlook.domain.com
https://outlook-staging.domain.com
https://auth.domain.com
是否可以手动指定每个平台中加载的Office.js版本,以便我们可以按照自己的速度升级并避免破坏这些更改?对于此特定错误,您需要将子域添加到清单中的appdomain/appdomains部分。见: 通常无法指定主要版本更改,即16.00->16.01,不应回滚到。如果主机(OWA客户端或Outlook)需要某个版本(16.01),强制使用16.00将导致意外行为(很可能API只是返回错误)
如果您想更灵活地应对我们对这些文件所做的更改(即我们对16.01所做的更改),您可以将这些文件从AppsProfile中取出并自托管它们。但不支持/建议这样做。这意味着我们对这些文件所做的任何错误修复或改进都将丢失 我们确实在清单文件中指定了这些域,并且在完成验证过程之前已经指定了这些域。我们研究了自托管,但由于Office.JS在不同平台上使用不同的JS文件的方式,这似乎有问题。还需要注意的是,这一特定错误仅在过去一两天内发生过,这就是我将其归因于版本更改的原因。鉴于桌面版本似乎不受影响,我们如何将其作为预期行为中的bug进行归档并寻求及时的修复?我认为这可能与清单上的appdomains部分不同。使用对话框API时是否出现此错误?如果是,在哪些操作系统和浏览器中?是的,我们使用的是对话API。它目前正在Safari和Chrome上的MacOS上运行。尚未在Windows环境上验证,但可以很快进行测试。