jcfw-lite/jcfw/common/storage.js
2020-02-01 16:53:49 +08:00

152 lines
3.8 KiB
JavaScript

/**
* 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);
},
};