应用沙箱目录

    更新时间:

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

    应用沙箱目录定义

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

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

    访问沙箱目录

    沙箱目录是通过 URI 形式访问 (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 中使用沙箱目录,只要遵循 vivo 手表框架开发即可。

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