storage-本地存储
Storage模块管理应用本地数据存储区,用于应用数据的保存和读取。应用本地数据与localStorage、sessionStorage的区别在于数据有效域不同,前者可在应用内跨域操作,数据存储期是持久化的,并且没有容量限制。通过plus.storage可获取应用本地数据管理对象。
方法:
- getLength: 获取应用存储区中保存的键值对的个数
- getItem: 通过键(key)检索获取应用存储的值
- setItem: 修改或添加键值(key-value)对数据到应用数据存储中
- removeItem: 通过key值删除键值对存储的数据
- clear: 清除应用所有的键值对存储数据
- key: 获取键值对中指定索引值的key值
权限:
5+功能模块(permissions)
{
// ...
"permissions":{
// ...
"Storage": {
"description": "本地存储,访问应用本地存储数据"
}
}
}
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
<meta name="HandheldFriendly" content="true" />
<meta name="MobileOptimized" content="320" />
<title>Hello H5+</title>
<script type="text/javascript">
function setItemFun(id) {
//循环插入100调数据
var dataNum = new Number(id);
for (var i = 0; i < dataNum; i++) {
plus.storage.setItem("key" + i, "value" + i);
}
var length = getLengthFun();
console.log("数据存储成功,存储了" + length + "条数据;");
}
function getLengthFun() {
return plus.storage.getLength();
}
function getAllItem() {
console.log("获取数据:");
var itemLength = getLengthFun();
for (var i = 0; i < itemLength; i++) {
var key = plus.storage.key(i);
var value = plus.storage.getItem(key);
outLine("key:" + key + "-->value:" + value);
};
}
function delItem() {
console.log("删除数据:");
var itemLength = getLengthFun();
for (var i = 0; i < itemLength; i += 2) {
var key = plus.storage.key(i);
plus.storage.removeItem(key);
};
var itemNo = getLengthFun();
outLine("移除了" + (itemLength - itemNo) + "条数据");
}
function clearAllItem() {
plus.storage.clear();
var num = getLengthFun();
if (num == 0) {
console.log("storage数据清除成功!");
} else {
console.log("storage数据清除失败!");
}
}
function modifyTopFive() {
console.log("修改前的数据是:");
for (var i = 0; i < 5; i++) {
var key = plus.storage.key(i),
value = plus.storage.getItem(key);
outLine("key:" + key + "-->value:" + value);
plus.storage.setItem(key, "新数据值>>" + i);
};
outLine("修改后的数据是:");
for (var i = 0; i < 5; i++) {
var key = plus.storage.key(i),
value = plus.storage.getItem(key);
outLine("key:" + key + "-->value:" + value);
};
}
</script>
</head>
<body>
<header id="header">
<div class="nvbt iback" onclick="back()"></div>
<div class="nvtt">Storage</div>
<div class="nvbt idoc" onclick="openDoc('Storage Document','/doc/storage.html')"></div>
</header>
<div id="dcontent" class="dcontent">
<br />
<ul class="dlist">
<li class="ditem" onclick="setItemFun('11')">插入11条数据</li>
<li class="ditem" onclick="getAllItem()">查询所有数据</li>
<li class="ditem" onclick="modifyTopFive()">修改前五条数据的内容</li>
<li class="ditem" onclick="delItem()">删除部分Item</li>
<li class="ditem" onclick="clearAllItem()">清除所有内容</li>
</ul>
</div>
<div id="output">
Storage管理本地数据存储,用于保存应用的全局数据,可在程序内部跨页面(跨域)共享数据。
</div>
</body>
</html>