UNPKG

gamelet-pixui-frame

Version:

pixui开发者框架

63 lines 2.93 kB
"use strict"; 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