如何指定使用的Office.js的确切版本?

时间:2017-07-14 00:15:41

标签: outlook office-js office-addins outlook-web-addins office-store

我们正在运行Outlook加载项,看起来Microsoft已将Office.js的版本从16.00更新为16.01outlook:{ios:"16.00",mac:"16.00",web:"16.01",win32:"16.02"}(通过https://appsforoffice.microsoft.com/lib/1.1/hosted/office.js

其中一项更改似乎是对postMessage的抽象的额外验证,确保子/父的域(包括子域)相同。

由于我们在不同的子域上托管我们的加载项和中央身份验证服务器,因此,我们所有的OAuth流都在Outlook的网络中被破坏。

outlook-web-16.01.js:18 Failed to execute 'postMessage' on 'DOMWindow': The target origin provided ('https://outlook.domain.com') does not match the recipient window's origin ('https://auth.domain.com')

Outlook on Desktop(MacOS和Windows)不受影响。

我们已将清单文件中的域列入白名单:

<AppDomains>
  <AppDomain>https://outlook.domain.com</AppDomain>
  <AppDomain>https://outlook-staging.domain.com</AppDomain>
  <AppDomain>https://auth.domain.com</AppDomain>
</AppDomains>

是否可以手动指定每个平台中加载的Office.js的版本,以便我们可以按照自己的步调升级并避免破坏这些更改?

1 个答案:

答案 0 :(得分:1)

对于此特定错误,您需要将子域添加到清单中的appdomain / appdomains部分。见:

https://dev.office.com/reference/add-ins/manifest/appdomains https://dev.office.com/reference/add-ins/manifest/appdomain

主要版本更改,即16.00 - > 16.01,一般不能指定,也不应该回滚到。如果主机(OWA客户端或Outlook)期望某个版本(16.01)强制它使用16.00将导致意外行为(很可能apis只返回错误)。

如果您希望对我们对这些文件所做的更改(即我们对16.01所做的更改)更具弹性,您可以将文件从appsforoffice和selfhost中删除。但这不受支持/推荐。这意味着我们将错过对这些文件所做的任何错误修复或改进。