Office Addin - 如何判断是否在Web客户端或本机

时间:2016-06-09 08:39:10

标签: javascript office365 office-addins

我正在使用Office加载项,并且需要能够判断文档是否已加载到标准Office软件或Office365 Online中。

我已查看docs但无法找到任何内容。

office.js中,有一个枚举看起来好像应该在某个地方使用,但我无法告诉我们该类型的属性/事件通知我们。我还在Office对象上放了一个断点,看不到任何东西。

Microsoft.Office.WebExtension.ApplicationMode={
WebEditor: "webEditor",
WebViewer: "webViewer",
Client: "client"
};

有人知道怎么做吗?

3 个答案:

答案 0 :(得分:1)

作为参考,在Outlook中,您可以使用它来区分OWA或桌面或Mac Outlook:

https://dev.outlook.com/reference/add-ins/Office.context.mailbox.diagnostics.html

答案 1 :(得分:1)

我知道这个问题很久以前就有人问过了,但我也在寻找这个问题,然后偶然发现了 Office.context 对象,它为我提供了我需要的有关托管平台的所有信息Office 插件。

要遵循的一些示例...

在 macOS 上通过 Outlook Office.context 调用 Desktop

{
  contentLanguage: "en-US"
  diagnostics: {
     host: "Outlook", 
     version: "16.47.314.0",
     platform: "Mac"
  },
  displayLanguage: "en-US",
  host: "Outlook",
  isDialog: false,
  platform: "Mac"
}

在 macOS 上通过 Outlook Office.context 调用 Web

{
  contentLanguage: "",
  diagnostics: {
    host: "Outlook",
    platform: "OfficeOnline",
    version: "0.0.0.0"
  },
  displayLanguage: "en-US",
  host: "Outlook",
  isDialog: false,
  platform: "OfficeOnline"
}

因此,在您的情况下,查看 platform 值可能是最有用的,您可以了解是否正在通过网络、移动设备、桌面等访问此插件。


所有可能的 platform 值都可以在这里找到https://docs.microsoft.com/en-us/javascript/api/office/office.platformtype?view=excel-js-preview

可以在此处找到 Office.context Interface 的文档https://docs.microsoft.com/en-us/javascript/api/office/office.context?view=excel-js-preview#platform

答案 2 :(得分:0)

搜索相同的内容,但在我的情况下,对于Word而不是Outlook,我只是发现了这段代码

        showNotification("url is: " + Office.context.document.url);
在我的情况下,

给出类似这样的URL

        url is: https://<corp portal name>-my.sharepoint.com/personal/<my name>/Documents/Document15.docx

数字15是由于我目前在我的OneDrive for Business文件夹中最多有15个已命名的文档(这些文件最终会在这些文件中出现)

在本地客户端版本的Word 网址为空。