Ms office 将Word Online检测为Office加载项内的主机

Ms office 将Word Online检测为Office加载项内的主机,ms-office,office-addins,office-js,Ms Office,Office Addins,Office Js,我正在使用任务窗格应用程序中的设置对象在文档中保存一些键值对 我的代码是这样的 Office.context.document.settings.set(key, value); Office.context.document.settings.saveAsync(function () { Toast.showToast("Setting saved", "Info saved into the document using saveAsync"); }); 我还对其调

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

我的代码是这样的

 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中运行,这样就可以显示一条消息,或者使用localStorage或其他方法来保存值

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

编辑2

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

您可以在此处键入键
test
的值,然后按save,这会在内部调用位于中的函数
saveToPropertyBag(键,值)
。此函数使用上述代码保存设置,然后调用
saveAsync
,以便将值保存在文档中

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

因此,我正在寻找一种方法来检测主机(Word Online),这样我就可以退回到另一种方法来存储值,就像本地存储一样,并向用户显示警告。

请参阅我的答案

基本上,你应该能够打电话

if(Office.context.requirements.isSetSupported(“设置”,1.1)){
//使用办公室设置
}否则{
//退回到本地存储或其他方式。
}
~z~迈克尔·兹拉特科夫斯基

Office扩展性团队的开发者,MSFT

Office.context.requirements.isSetSupported(“设置”,1.1)
在WordOnline客户端中返回true,尽管在中不支持设置it@Shiva,听到这个消息我感到非常惊讶。您能描述一下“it不支持设置”的确切含义吗。你想调用什么方法?我询问的原因是,正如您在中所看到的,设置要求集只包括设置下的一些成员,即get、remove、saveAsync和set。还有许多其他的——addHandlerAsync、refreshAsync和removeHandlerAsync都不是需求集的一部分,您需要以不同的方式进行检查。但是,您要调用哪一个呢?重读您的问题时,听起来好像您正试图调用saveAsync?这是绝对应该得到支持的(事实上,即使是上面链接的MSDN文章也显示它支持Word Online)。让我看看是不是虫子…@Shiva,好的,谢谢你的澄清。这听起来像个虫子。我正在将它升级到我的团队中合适的工程师那里;如果您在这里遇到更多问题,请告知我们。谢谢