我正在使用任务窗格应用程序中的Settings
对象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中没有将设置持久化,因为当前的设置对象是Word Online
。
因此,是否有一种方法可以发现应用程序在Word联机中运行,这样就可以显示一条消息,或者可以使用localStorage或其他东西来保存值。
编辑:创建用户语音请求以将其添加到Word Online中,您可以支持此功能这里
编辑2
为了更好地解释这个问题并分享一个示例,我创建了一个示例插件,清单位于这里。
在这里,您可以键入键test
的值并按保存,这在内部调用位于StorageLibrary.js
中的函数saveToPropertyBag(key, value)
。这个函数有上面提到的代码来保存设置,然后调用saveAsync
,以便这些值被持久化到文档中。
现在您可以刷新浏览器或重新加载加载项,然后按get,该值将在Excel和Powerpoint中可用,但在Word Online中不可用。
因此,我正在寻找一种检测主机(Word Online)的方法,这样我就可以回到另一种方式来存储值,比如本地存储,并向用户显示警告。
发布于 2015-10-26 17:46:14
见我对获得环境的简洁方法(即Office版本)的回答
基本上,你应该可以打电话给
if (Office.context.requirements.isSetSupported("Settings", 1.1)) {
// Use Office settings
} else {
// Fall back to local storage or something else.
}
~ Michael Zlatkovsky
办公室扩展团队中的首席开发人员
https://stackoverflow.com/questions/33351503
复制相似问题