如何正确检查主机:Office,Office在线和Web浏览器

时间:2017-05-10 08:55:39

标签: office-js

我需要检测用户是否已通过浏览器点击我的加载项的网址,Office和Office在线 。 (我在这里看到的问题是关于检测它是Excel还是Excel在线,但不是既不是。)

我查看了实用程序函数OfficeHelpers.Utilities.hostOfficeHelpers.Utilities.isAddin,但code notes说这些只会在调用Office.initialize后才能生效。如果URL已从Office客户端外部导航到,那么情况就不是这样(?)。

所以我认为当你收到警告时我需要执行相同的检查: Warning in Google Chrome ...以确保不会运行Office.initialize,而不是它尚未运行

一个简单的用法是将用户引导到一个页面,该页面显示他们无法在不加载它的情况下访问它,以及如何加载加载项的说明等。

我想要获得的实际结果是将两种情况都处理为:

从Office客户端:“GetData”将返回一些值并将其写入文档。 如果从浏览器访问:“GetData”将返回一些值并重定向到View以显示这些值。

1 个答案:

答案 0 :(得分:0)

目前没有很好的解决方案,但我同意这里有机会公开“Office.ready”以提供Office.js以某种方式加载的明确标志 - 并且主机和平台现在已经稳定下来(包括确定稳定的“网络”和无效)。

对于Script Lab,我们使用等待Office.js三秒的方法,然后放弃并向用户显示一组错误的按钮,要求他们选择主机。我们当时可以安全地假设“web”,但在我们的情况下,我们希望在任何情况下提供消歧体验,因此用户可以选择是否运行Web片段或查看主机特定的那些,无论如何他们需要主机选择

如果您想知道如何完成,请参阅https://github.com/OfficeDev/script-lab/blob/eeb4ba89a7a570cf1bb035fdd740ec7dcfb92822/src/client/app/helpers/environment.ts

中的“初始化”功能