152 lines
3.8 KiB
JavaScript
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);
|
|
},
|
|
};
|