代码改变世界

cocos2d JS 本地缓存存储登陆记住账号密码->相当于C++中的UserDefault

2017-07-08 02:02  罗任德  阅读(1446)  评论(0编辑  收藏  举报

在cocos-js 3.0以上的版本中,当我们用到本地存储的时候,发现以前用到的UserDefault在JS中并没有导出,而是换成了LocalStorage。



 

LocalStorage.h文件中我们查看了一下源码,使用方法就是设置Key-Value的方式

  • 存储数据:cc.sys.localStorage.setItem(“key”,”value”)
  • 获取数据:cc.sys.localStorage.getItem(“key”)
  • 移除数据:cc.sys.localStorage.removeItem(“key”)
  • 清除所有:cc.sys.localStorage.clear()

 

实例:

 1 //this.ebAccount //账号
 2 //this.ebPwd  //密码
 3 
 4     // 取值
 5     var account = cc.sys.localStorage.getItem(this.ACCOUNT_KEY);
 6     if(account != null)    //判断账号不为空时取密码值
 7         {
 8             this.ebAccount.setString(account);
 9             this.ebPwd.setString(cc.sys.localStorage.getItem(this.PASSWORK_KEY));     //取密码
10         }
11 
12 //事件函数(自行定义即可)此处仅为例
13 loginSuccessCB : function(account)
14     {
15         //登录成功记住密码
16         if(this.imgCheckMark.visible) {     //判断是否勾选记住密码
17             cc.sys.localStorage.setItem(this.ACCOUNT_KEY, this.ebAccount.getString());    //以key,value 形式储存到本地
18             cc.sys.localStorage.setItem(this.PASSWORK_KEY, this.ebPwd.getString());
19         }
20     },
21 
22 //事件函数
23 onLogin:function()
24     {
25         if (!this.imgCheckMark.visible)//判断若不勾选记住密码则删除
26         {
27             cc.sys.localStorage.removeItem(this.ACCOUNT_KEY);
28             cc.sys.localStorage.removeItem(this.PASSWORK_KEY);
29         }
30 
31         var account = this.ebAccount.getString();  //全局变量账号转字符串赋值  
32         var pwd = this.ebPwd.getString();
33 
34         if(pwd == "" || account == "")
35         {
36             jx.alert("账号密码不能为空");//提示框
37             return;
38         }
39     },