目录
概述
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方法。
评一波