2

Mac で office.js アドインの永続的な設定を保存する方法を見つけるのに苦労しています。

Windows では、Word を閉じたり開いたりしても維持される設定が保存されるため、localStorage は完璧に機能します。

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 + '"');
4

1 に答える 1

1

iOS には現在、この localStorage の問題をまだ修正できないバグがあります。それまでの間、次の 2 つの回避策が考えられます。

クッキー

ドキュメント間で設定を保持する場合は、バグが修正されるまでJavaScript Cookie ( 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 設定オブジェクト 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 アドイン担当プログラム マネージャー

于 2016-08-02T17:19:50.727 に答える