gamelet-pixui-frame
Version:
pixui开发者框架
63 lines • 2.93 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.localStorageInit = localStorageInit;
/**
* 本文件的作用是在活动窗口中重写 localStorage,
* 将所有操作通过 RPC 转发到 js-sdk 层的 LocalStorageMgr 处理,
* 实现活动级别的数据隔离和过期管理。
*
* 通过 js-sdk 主版本号同步判断是否支持 LocalStorageMgr(主版本号 >= 15),
* 不支持则不挂载代理,保持原生 localStorage。
* 支持则同步挂载 proxy,所有读写通过 RPC 实时转发。
*/
var rpc_mgr_1 = require("./rpc_mgr");
var utilities_1 = require("../../../utilities/utilities");
function localStorageInit(appId) {
if (!appId || appId <= 0) {
return;
}
// js-sdk 主版本号 >= 15 才支持 LocalStorageMgr
var version = (0, utilities_1.getGameletInnerVersion)();
if ((0, utilities_1.getMajorVersion)(version) < 15) {
console.warn("[localStorageInit] appwindow: js-sdk version " + version + " major < 15, LocalStorageMgr not supported, skip proxy");
return;
}
var storageId = appId.toString();
var proxy = {
setItem: function (key, value, expireDays) {
rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().setItem", storageId, key, value, expireDays);
},
getItem: function (key) {
return rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().getItem", storageId, key).then(function (value) {
return (value !== null && value !== undefined) ? value : null;
});
},
removeItem: function (key) {
rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().removeItem", storageId, key);
},
clear: function () {
rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().clear", storageId);
},
key: function (index) {
return rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().key", storageId, index).then(function (value) {
return (value !== null && value !== undefined) ? value : null;
});
},
get length() {
return rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().getLength", storageId).then(function (value) {
return (value !== null && value !== undefined) ? value : 0;
});
},
getAllItems: function () {
return rpc_mgr_1.RPCMgr.getInstance().callSDK("LocalStorageMgr.getInstance().getAllItems", storageId).then(function (data) {
return (data !== null && data !== undefined) ? data : {};
});
}
};
// 同步挂载代理
Object.defineProperty(window, 'localStorage', {
get: function () { return proxy; },
configurable: true
});
}
//# sourceMappingURL=local_storage.js.map