在使用我一直在使用的外接程序中使用漫游设置时遇到问题。
我们使用漫游设置来存储用户将要对其进行API调用的URL。加载项的清单使用菜单控件,因此提供了两个选项。一个会加载加载项本身,另一个是一些JavaScript来清除漫游设置。
Office.initialize = function (reason) {
}
function signOut(event) {
Office.context.roamingSettings.remove('domain_url');
Office.context.roamingSettings.saveAsync(() => {
event.completed();
});
}
我遇到的问题是,如果我加载加载项并使其保持打开状态,然后使用其他菜单项中的“删除漫游设置”选项,那么直到我关闭该漫游设置后,漫游设置才会被删除。加载项,然后再次打开。
已加载的加载项仍将能够通过以下方式获取那些漫游设置:
return <T>Office.context.roamingSettings.get(name);
,直到我关闭加载项为止。
有人知道即使漫游设置已被清除,为什么这些get调用仍能提供结果吗?为什么直到我关闭外接程序并重新打开它,上面的get调用才起作用?
>答案 0 :(得分:2)
以下是MS doc的引文:
重要提示:RoamingSettings对象是从 仅在首次加载外接程序时才持久存储。对于任务 窗格,这意味着仅在任务窗格首次启动时才对其进行初始化 打开。如果任务窗格导航到另一个页面或重新加载 当前页面,内存中的对象被重置为其初始值, 即使您的加载项已持续更改。持久的更改将 在任务窗格关闭并重新打开之前不可用。