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.沙箱机制

  在 androidios 中均采用虚拟沙箱的机制来保障数据存储的安全和独立,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怎样进行本地存储和图片缓存?的主要内容,如果未能解决你的问题,请参考以下文章

数据本地缓存(不包含图片缓存)

数据本地缓存(不包含图片缓存)

简单说一下浏览器本地存储是怎样的

uni-app,vue,react,Trao之缓存类封装

使用PhoneGap截取图片,在app中显示并保存到本地存储

常春藤发布到存储库不会更新本地缓存