应用沙箱目录

更新时间:

蓝河应用框架给每个应用分配了一个专属的应用目录,蓝河应用的数据访问和操作都被限制在该目录内,此目录下存放的数据可以保护数据的安全性,这个目录称为 “应用的沙箱目录”。

应用沙箱目录定义

应用沙箱目录定义详细说明

沙箱目录名 定义说明
files 应用在本设备上用于存放小而重要的数据目录(如用户登录数据),安全且持久有效,随应用卸载而删除。
cache 应用在本设备上用于存放缓存文件的目录(如图片、音频缓存),此目录可能会因系统空间不足而被清理,用户也可通过系统管理类应用清理该目录,此目录随应用卸载而删除,适合保存不重要的缓存数据。
mass 应用在本设备上用于存放大文件的目录(如下载的音频文件),此目录随应用卸载而删除。
tmp 应用在本设备上用于存放临时文件的目录(如临时日志),应用退出后就会清理该目录,此目录随应用卸载而删除,适合存放使用后即可删除的文件数据。
preferences 应用在本设备上用于存放 key-val 数据的目录,有大小限制,此目录下的数据通过 storage 的 API 写入,适合保存首选项和配置文件,随应用卸载而删除。

访问沙箱目录

沙箱目录是通过 URI 形式访问,每个沙箱目录都有对应的 URI 标准标识。可以使用 URI 的地方都可以访问到沙箱目录,下面表格展示了不同沙箱目录的对应的 URI 格式。

沙箱目录名 URI 定义
files internal://files/
cache internal://cache/
mass internal://mass/
tmp internal://tmp/

如需要往 files 沙箱存放一个 json 文件,则可如下操作:

file.writeText({
  uri: 'internal://files/demo.json',
  text: '{"name": "张三"}',
  success: function () {
    console.log('handling success')
  },
  fail: function (data, code) {
    console.log(`handling fail, code = ${code}`)
  },
})
复制代码

如何选择存放沙箱目录的位置

沙箱目录的不同划分是为了对数据进行分类管理,将数据放在合理的目录下会让应用获得更大的收益。

对于不同沙箱目录的使用场景如下:

  • files:此目录用于存放小而重要的数据,目录长期有效,可以保存的文本文件,如 json。
  • mass:此目录用于存放大而不太重要的数据,目录长期有效,可以保存需要需要持久化的图片、音频、视频等文件。
  • cache:此目录用于存放缓存文件,适合保存不重要的缓存数据,如缓存的音频、视频等。
  • tmp:此目录用于存放临时文件,应用退出后可能被清理,适合存放日志等临时文件。
  • preferences:此目录只能通过 storage 能力访问,适合存放应用运行中的 key-val 数据。

JS 如何正确的使用沙箱目录

要在 js 中使用沙箱目录,只要遵循蓝河应用框架开发即可。

  • 存放/获取 文件时,使用 blueos.storage.file 能力,并且使用 URI 拼接,避免使用绝对路径写法。
  • 存放/获取 key-val 时,使用 blueos.storage.storage 能力。
  • 存放在沙箱目录内的图片,如果要用 image 标签访问,也需要使用 URI 访问。
  • 同上,音频和视频文件如果要播放同样是需要 URI 访问。
下一篇
通知能力
以上内容对您是否有帮助?
  • 毫无帮助
  • 帮助不大
  • 一般
  • 很好
  • 非常好
意见反馈