我目前使用以下函数在Office.context.documents.settings中存储一个键值对:
Office.context.document.settings.set(name, value);一旦存储了键值对,我将重新启动外接程序,并尝试使用以下函数获取值-
Office.context.document.settings.get(name);但是该函数返回的是null,而不是正确的值。存储在文档设置中的值是否会在应用程序的多个会话中持续存在,还是会在我们关闭应用程序后刷新?
发布于 2017-12-11 23:34:43
你的问题没有太多细节,但在处理设置时有两个常见错误:
无法加载设置
在读取给定设置之前,您需要填充settings对象。这是使用refreshAsync()完成的
Office.context.document.settings.refreshAsync(function(){
Office.context.document.settings.get(name);
});侧面加载的外接程序
当您侧面加载外接程序时,Office会生成一个随机ID并将其分配给您的外接程序。如果你移除并重新加载外接程序,它将生成一个新的ID。如果你在两台不同的机器上侧载相同的外接程序,你也会得到两个不同的ID。
这将影响settings的功能,因为在存储设置或从文档中调用设置时,设置是由加载项ID键入的。有关它的工作原理(以及如何绕过它)的详细信息,请参阅Issue with Office.context.document.settings.get。
发布于 2017-12-19 05:37:29
未保存设置,因为您未调用saveAsync。set方法仅将设置保存在内存中,而不是保存到文件中。要保存到文件,必须首先调用set,然后调用:
Office.context.document.settings.saveAsync(callback);然后,当您重新加载外接程序时,您将能够使用get检索设置。下面是saveAsync方法的文档页面:https://dev.office.com/reference/add-ins/shared/settings.saveasync
用于附加模块的-Michael、PM
https://stackoverflow.com/questions/47755782
复制相似问题