ms-office – 将Office Online检测为Office加载项中的主机

我在任务窗格应用程序中使用
JavaScript API的设置对象来保存文档中的一些键值对.

我的代码是这样的

 Office.context.document.settings.set(key, value);
 Office.context.document.settings.saveAsync(function () {
        Toast.showToast("Setting saved", "Info saved into the document using saveAsync");
 });

我也在上面调用saveAsync函数来保存值.

我面临的问题是Word Online中没有保留设置,因为当前设置对象是not supported in Word Online

那么有没有办法找到应用程序在Word Online中运行,因此可以显示消息,或者可以使用localStorage或其他东西来保存值.

编辑:创建一个uservoice请求以在Word Online中添加此请求,您可以支持此功能here

编辑2

为了更好地解释问题并分享一个例子,我创建了一个示例插件,清单位于here.

在这里,您可以键入键测试的值并按save,这内部调用位于StorageLibrary.js的函数saveToPropertyBag(键,值).此函数具有上述代码以保存设置,然后调用saveAsync,以便值保持在文档中.

现在您可以刷新浏览器或重新加载插件,然后按get,该值将在Excel和Powerpoint中可用,但在Word Online中不可用.

所以我正在寻找一种方法来检测主机(Word Online),以便我可以回退到另一种方式来存储像本地存储的值,并向用户显示警告.

最佳答案 请参阅我对
Neat ways to get environment (i.e. Office version)的回答

基本上,你应该可以打电话

if (Office.context.requirements.isSetSupported("Settings", 1.1)) {
    // Use Office settings
} else {
    // Fall back to local storage or something else.
}

~Michael Zlatkovsky

Office扩展性团队开发人员,MSFT

点赞