目录
概述
preferences插件的作用是数据存储,支持存储数据、获取数据、建立数据变化监听、删除指定数据、删除所有数据的功能,支持简单和复杂数据结构。支持Android和IOS。
JS调用方法
1、导入插件require(“cordova!cordova-plugin-app-preferences”)。
2、插件提供五个方法
- 存储数据:store(storeSuccess,storeFail,”key”,”value”)。store为方法名,storeSuccess和storeFail分别是成功回调、失败回调。数据存储是键值对的形式,key为键,value为值。
- 获取数据:fetch(fetchSuccess,fetchFail,”key”)。fetch为方法名,fetchSuccess和fetchFail分别是成功回调、失败回调,key为要查找的数据的键。
- 建立数据变化监听:创建监听,能监测到数据存储的变化(新建、变更、删除),并能得到变更的数据的键值。详细请看下面贴出的js代码的dataMonitor方法及其调用。
- 删除指定数据:remove(removeSuccess,removeFail,”key”)。remove为方法名,removeSuccess和removeFail是成功回调、失败回调。key为要删除的数据的键。
- 删除所有数据:clearAll(function(){alert(“数据成功清空!”)},function(){alert(“数据清空失败!”)})。clearAll为方法名,括号是成功回调和失败回调。
define(function(require){
var $ = require("jquery");
require("cordova!cordova-plugin-app-preferences");
var preferences=plugins.appPreferences;
function keyValue(){}
var Model = function(){
this.callParent();
//设备准备好后加载数据变化监听
// document.addEventListener("deviceready", dataMonitor, false);
};
function storeSuccess(result) {
alert("存储成功,key值为"+keyValue.key+",value值为"+keyValue.value);
};
function storeFail(result) {
alert("存储失败,key值为"+keyValue.key+",value值为"+keyValue.value);
};
function fetchSuccess(result) {
alert("获取数据成功,key值为"+keyValue.key+",value值为"+result);
};
function fetchFail(result) {
alert("获取数据失败,key值为"+keyValue.key+",value值为"+result);
};
function removeSuccess(result) {
alert("删除成功,key值为"+keyValue.key);
};
function removeFail(result) {
alert("删除失败,key值为"+keyValue.key);
};
function dataMonitor() {
plugins.appPreferences.watch();
document.addEventListener ('preferencesChanged', function (evt) {
// with some platforms can give you details what is changed
if (evt.key) {
alert("数据变化,数据变化的key值为"+evt.key);
}
});
}
Model.prototype.storeClick = function(event){
keyValue.key="key";
keyValue.value="value";
preferences.store(storeSuccess,storeFail,"key","value");
};
Model.prototype.fetchClick = function(event){
keyValue.key="key";
preferences.fetch(fetchSuccess,fetchFail,"key");
};
Model.prototype.watchClick = function(event){
alert("建立数据变化的监听!");
dataMonitor();
};
Model.prototype.removeClick = function(event){
keyValue.key="key";
preferences.remove(removeSuccess,removeFail,"key");
};
Model.prototype.clearAllClick = function(event){
preferences.clearAll(function(){alert("数据成功清空!")},function(){alert("数据清空失败!")});
};
return Model;
});
注意事项
1、keyValue.key和keyValue.value是静态声明的意思,js执行并回调是异步执行的。回调返回并没有提供key值,所以静态声明相当于自行记录了key值。
2、clearAll不会激发数据变化的监听。需要该监听生效的话不要用clearAll方法,可以用remove方法。
评一波