4

我在任务窗格应用程序中使用JavaScript APISettings的对象在文档中保存一些键值对。

我的代码是这样的

 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 Online 中运行,因此可以显示一条消息,或者可以使用 localStorage 或其他东西来保存值。

编辑:创建了一个用户语音请求以在 Word Online 中添加此功能,您可以在此处支持此功能

编辑 2

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

在这里您可以键入键的值test并按保存,这会在内部调用saveToPropertyBag(key, value)位于StorageLibrary.js. 此函数具有上述代码来保存设置,然后saveAsync被调用,以便将值保留在文档中。

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

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

4

1 回答 1

3

请参阅我对获得环境的整洁方法的回答(即 Office 版本)

本质上,您应该可以调用

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

~ Michael Zlatkovsky Microsoft
   Office 可扩展性团队开发人员

于 2015-10-26T17:46:14.060 回答