OSX/Mac 中的加载项持久设置

Add-in persistent settings in OSX/Mac

我无法找到一种方法来为 Mac 上的 office.js 加载项存储持久设置。

On windows localStorage 工作完美,因为它保存了在关闭和打开 Word 时持续存在的设置。

On Mac localStorage 不会持续关闭和打开 Word,即使通过刷新或关闭和打开加载项也不会。

这是一个简单的代码示例:

var settingString = 'mySetting';
var oldValue = localStorage.getItem(settingString);
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
localStorage.setItem(settingString, newValue);
write('newValue: "' + newValue + '"');

iOS 目前有一个错误阻止我们修复此 localStorage 问题。同时,您有两个可能的解决方法:

Cookies

如果您希望跨文档保留设置,请使用 JavaScript cookies (w3schools doc) 直到错误被修复:

var settingString = 'mySetting';
var oldValue;
var myCookies = document.cookie.split(';');
for(var i = 0;i < myCookies.length;i++){
    var myCookie = myCookies[i].trim();
    if(myCookie.indexOf(settingString + "=") == 0){
        oldValue = myCookie.substring(settingString + 1,myCookie.length);
    }
}
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
var expiry = d.setTime(d.getTime() + (14 * 86400000)); // # milliseconds in a day
document.cookie = settingString + "=" + newValue + "; expires=" + expiry.toGMTString();
write('newValue: "' + newValue + '"');

设置

如果仅在当前文档中保留该值就足够了,您可以使用 Office 设置 API (Office.js Settings object doc):

var settingString = 'mySetting';
var oldValue = Office.context.Settings.get(settingString);
write('oldValue: "' + oldValue + '"');
var d = new Date();
var newValue = d.getHours() + ':' + d.getMinutes() + ':' + d.getSeconds();
Office.context.Settings.set(settingString, newValue);
Office.context.Settings.saveAsync(function(asyncResult){
    write('newValue: "' + newValue + '"');
});

-Michael Saunders,Office 加载项项目经理