APP怎样进行本地存储和图片缓存?
Posted apicloud
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了APP怎样进行本地存储和图片缓存?相关的知识,希望对你有一定的参考价值。
数据的本地存储和图片缓存可以极大地提高 app 的用户体验、提高 UI 响应速度、减少网络使用。
1.uzStorage
uzStorage 比标准的 localStorage 更安全易用。
举个栗子: localStorage 有大小限制、异步会导致一些安全、不能存储对象等问题,但这些问题均在 uzStorage 中得到了解决。
2.偏好设置
3.文件
APICloud 提供了标准的文件操作接口,支持同步和异步的调用方式。使用下面的 API 操作文件:
api.readFile({?sync:false,// 是否同步,默认 false?path:"PathToFile"// 文件路径,支持绝对路径和文件路径协议如 fs://、widget:// 等
}, function(ret,err){
//ret = {status:true,data:""}
}); //err = {code:0,msg:""}
api.writeFile({?path:"PathToFile",// 文件路径,支持绝对路径和文件路径协议如 fs://、cache:// 等,不支持 widget:// 目录,
该目录只读?data:"data",// 文件内容
append:false// 是否以追加方式写入数据,默认 false,会清除之前文件内容 }, function(ret,err){
//ret = {status:true}
}); //err = {code:0,msg:""}
4.database
使用“db”模块操作数据库,“db”模块封装了手机常用数据库 sqlite 的增删改查语句,可实现数据的本地存储,极大地简化了数据持久化问题,并且支持同步接口。
5.存储容量
APICloud 提供了关于存储容量的 API,代码如下:
api.getFreeDiskSpace({?sync:false// 执行结果的返回方式。为 false 时通过 callback 返回,为 true 时直接返回,默认 false
}, function(ret,err){?//ret = {size:1024} 剩余存储空间大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存
储设备、-3 :无法访问存储设备) });
api.getTotalSpace({?sync:false //执行结果的返回方式。为false时通过callback返回,为true时直接返回,默认false
}, function(ret,err){?//ret = {size:1024} 总存储空间大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存储
设备、-3 :无法访问存储设备) });
api.getCacheSize({?sync:false// 执行结果的返回方式。为 false 时通过 callback 返回,为 true 时直接返回,默认 false
}, function(ret,err){?//ret = {size} 缓存大小,单位为Byte,数字类型。(-1:无存储设备、-2:正在准备USB存储设备、-3:无
法访问存储设备)
});
api.clearCache({ timeThreshold:10//(可选项)清除多少天前的缓存,默认 0
}, function(ret,err){ }); //清除完成
6.沙箱机制
在 android 和 ios 中均采用虚拟沙箱的机制来保障数据存储的安全和独立,App 只能访问 自己文件系统的沙箱区域。沙箱位置如下。
? Android 的默认沙箱位置:sdcard/UZMap/appId。 ?
? iOS 的默认沙箱位置:Documents/uzfs/appId。 ?
7.资源访问协议 ?
APICloud 资源被存放在 app 安装包(ipa 包或者 apk 包)中或应用沙箱中。沙箱分为 APICloud 应用虚拟沙箱和 Native 应用真实沙箱,真实沙箱是操作系统为 app 在设备内部存储上分配的空间,不可见,只允许 app 本身访问。
?8.图片缓存 ?
对于图片缓存,可使用如下代码:
? ? var img = $api.byId("myImg");
? api.imageCache({
? ? url:‘http://example.com/dir/file.png‘
? },function(ret,err){
? ? if(ret && ret.status == true){
? } img.src = ret.url;
? ?else{?} //处理错误 ?}); ?
上述代码首先在参数中指定了要缓存的远程图片路径(url),在之后的回调函数中判断是否缓存成功(if(ret && ret.status == true){}),如果成功就可以使用 ret.url 来更新
标签。ret.url 是图片缓存到本地后的路径。
更多app资讯,请关注www.apicloud.com
提交app定制需求,了解报价和周期:
https://app.apicloud.com/index?uzchannel=500
以上是关于APP怎样进行本地存储和图片缓存?的主要内容,如果未能解决你的问题,请参考以下文章