在app中存储用户数据下次打开app仍可使用

作者:ipwas 更新时间:2020-04-04 11:53

今天我们就告诉大伙一点小知识如何存储数据,在下次打开app时仍然可以使用该数据

其实apicloud本身就有这方面存储相关api,但是只能存储文本类型数据,于是我们都他进行改良了一下可以存储 文本、数值、JSON等类型数据。


api 相关方法:

api.setPrefs  // 设置偏好数据,数据会存储到本地文件系统。

api.getPrefs // 获取偏好设置值

api.removePrefs // 删除偏好设置值

// 改良方法

/*
* 设置偏好数据,数据会存储到本地文件系统。
* param @ key 数据名称 文本类型
* param @ data 存储数据 类型可以是 文本型、数值型、JSON对象
* return 成功 = true , 失败 = false
*/
function setPrefs(keys,data){
	try{
		if(typeof keys != 'string') throw("e");
		switch(typeof(data)){
			case "number":
				data = "number|"+data.toString();
			break;
			case "object":
				try{
					data = "object|"+JSON.stringify(data);
				}catch(e){
					/*非JSON对象,过滤*/
				}
			break;
		}
		if(data){
			api.setPrefs({key:keys,value:data});
			return true;
		}
	}catch(e){
	}
	return false;
}

/*
 * 获取偏好设置值
 * param @ key 数据名称 文本型
 * return JSON对象、文本、数值 (返回数据类型是根据你存储的数据类型返回)
 */
function getPrefs(keys){
	try{
		var data = api.getPrefs({sync:true,key:keys});
		switch(data.substr(0,7)){
			case "object|":
				data = data.substr(7);
				data = JSON.parse(data);
			break;
			case "number|":
				data = data.substr(7);
				data = parseFloat(data);
			break;
		}
		return data;
	}catch(e){
	}
	return "";
}

/*
* 删除偏好设置值
* param @ key 数据名称
* 无返回值
*/
function removePrefs(key){
	api.removePrefs({key:key});
}


通过如上方法即可达到数据存储,即使关闭APP下次仍然可以使用

如果APP被删除数据也将随之而失去。


//使用方法

// 存储文本
setPrefs("ipwas","OK");
// 存储数值
setPrefs("ipwas",0.1);
// 存储 JSON 对象
setPrefs("ipwas",{ipwas:"https://www.ipwas.cn"} );

// 获取数据
getPrefs("ipwas");

// 删除数据
removePrefs("ipwas");


本站原创谢绝转载!