我在任务窗格应用程序中使用
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