/** * Created by y.x on 18/09/06. */ var dateutils = require('../utils/dateutils'); module.exports = { set: function(key, value){ try{ cc.sys.localStorage.setItem(key,value); return true; }catch(err){ console.log(err); } return false; }, get: function(key){ return cc.sys.localStorage.getItem(key); }, setjson: function(key, value){ this.set(key,JSON.stringify(value)); }, getjson:function(key){ let str = this.get(key); if(str){ try{ return JSON.parse(str); }catch(err){ } } return null; }, remove: function(key){ cc.sys.localStorage.removeItem(key); }, hasItem: function(key){ var result = cc.sys.localStorage.getItem(key); if (cc.sys.platform == cc.sys.WECHAT_GAME) { if(result == '' && typeof(result) != 'number'){ return false; } return true; }else{ if(result == null || result == undefined){ return false; } return true; } // if(result){ // return true; // } // else{ // return false; // } }, setData: function(key,value){ var data = {}; data[key] = value; console.log("storage====set== " + JSON.stringify(data)); return this.set(key, JSON.stringify(data)); //cc.sys.localStorage.setItem(key,JSON.stringify(data)); }, getStringData: function(key){ console.log("storage====get== start" + key); var result = cc.sys.localStorage.getItem(key); if (!result) { return "0"; } var data = null; try{ data = JSON.parse(result); }catch(err){ console.log(err); } console.log("storage====get== " + data); if(!data){ return "0"; } console.log("storage====get== " + data[key]); return data[key]; }, setStorage: function(skey, svalue, successcb, failcb, timeorign_type, time_value){ var bok = this.set(skey, svalue); if(timeorign_type && time_value){ let sk = skey + '_expired'; let sv = { tm_tp: timeorign_type, tm_val: time_value, tm_now: dateutils.getCurrSeconds() }; this.setjson(sk, sv); } if(bok){ successcb && successcb(); }else{ failcb && failcb(-1, 0, 'storage kev/value failed!k/v:'+skey+'/'+svalue); } }, setStorages: function(kvlist, successcb, failcb){ let bok = true; kvlist.forEach(element => { if(!this.set(element.key, element.value)){ bok = false; } }); if(bok){ successcb && successcb(); }else{ failcb && failcb(-1, 0, 'storage kvlist failed!'+JSON.stringify(kvlist)); } }, getStorage: function(key, successcb, failcb){ let value = this.get(key); let sk = key + '_expired'; let tv = this.getjson(sk); if(!tv){ successcb && successcb(value); }else{ let sec = dateutils.expiredSeconds(tv.tm_tp, tv.tm_val, tv.tm_now); if(sec <= 0){ successcb && successcb(null, sec, key); }else{ successcb && successcb(value, sec, key); } } }, getStorages: function(keylist, successcb, failcb){ let lst = []; keylist.forEach(element => { let v = this.get(element); lst.push({ key: element, value: v, }); }); successcb && successcb(lst); }, };