今日のご質問
回答
egret.localStorage
のグローバル関数を使うといいですよ
APIリファレンス:
http://developer.egret.com/cn/apidoc/index/name/egret.localStorage.globalFunction#methodSummary
使いかた
/// 簡単なデータの読み込みと保存
const userName = egret.localStorage.getItem("userName");
userName = "New Name";
egret.localStorage.setItem("userName", userName);
/// ちょっと複雑なデータの読み込み・保存
const savedJson = egret.localStorage.getItem("savedData");
const data = JSON.parse(savedJson);
const newData = { ... data, newProp: "New Value" } ;
const toSaveJson = JSON.stringfy(newData);
egret.localStorage.setItem("savedData",toSaveJson );
解説
EgretEngineのLocalStorageha,ブラウザが実装しているLocalStorageへのラッパーです。
function getItem(key:string):string {
return window.localStorage.getItem(key);
}
function setItem(key:string, value:string):boolean {
try{
window.localStorage.setItem(key, value);
return true;
}
catch(e){
egret.$warn(1047, key, value);
return false;
}
}
function removeItem(key:string):void {
window.localStorage.removeItem(key);
}
function clear():void {
window.localStorage.clear();
}
LocalStorageとはWebStorageと呼ばれるものの一つで、javascriptを用いてクライアント側にデータを保存する仕組みです。ユーザのローカル(ブラウザ)にデータを保存することができるので、半永久的にデータを保持することができます。データの読み込み・更新も比較的簡単に行うことができます。
引用:http://wp.tech-style.info/archives/742
各ブラウザーの実装状況は?
おおむね実装されているようです
いつものごとく、iOSにはいろいろ制限があるようです
注記: iOS 5.1 より Safari Mobile は localStorage データを cache フォルダに保存しており、概して空き容量が少ない場合に OS の要求により、時々クリーンアップを受けます。
参考:
https://developer.mozilla.org/ja/docs/Web/API/Web_Storage_API
https://bbs.egret.com/forum.php?mod=viewthread&tid=11824&highlight=localstorage
iOS11未満のSafariはシークレットモードではLocalStorageにアクセスできなかったようです