cacheManager

立即使用

概述

该模块实现了对app内部缓存的清理

iOS 沙盒机制

每个 iOS 程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒。当然该应用也不能访问其它应用的沙盒(某些系统资源除外,如系统相册等,编译之前需申请访问权限)。

iOS沙盒中的目录

  • Documents (fs://协议对应的路径的根目录)保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。

  • Library 目录可创建子文件夹。可以用来放置您希望被备份但不希望被用户看到的数据。该路径下的文件夹,除Caches以外,都会被iTunes备份。这个目录下有两个默认子目录:

    • Library/Caches:(cache://协议对应的路径的根目录)保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。
    • Library/Preferences 目录:包含应用程序的偏好设置文件。通过 UserDefaults 模块来操作的。UserDefault 是持久化数据的一种方式,主打轻量级的用户配置信息。它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。
  • tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。该路径下的文件不会被iTunes备份。

模块接口

clearAppCache

清除App缓存(包含app沙盒及sd卡缓存目录;在Android系统中沙盒路径为/data/data/你的应用包名/cache/,sd卡缓存路径为SDCard/Android/data/你的应用包名/cache/,下同)。iOS端清除 Library/Caches:(cache://协议对应的路径的根目录)目录下所有数据。

clearAppCache(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:true,           //布尔类型;是否成功
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.clearAppCache(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

clearCache

清除任意指定路径的缓存

clearCache({params},callback(ret))

params

dir:

  • 类型:字符串
  • 描述:本地路径,支持fs、box、本地可访问路径

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:true,           //布尔类型;是否成功
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.clearCache({
   dir:''
},function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getAppCacheSize

获取app缓存大小(包含app沙盒及sd卡缓存目录)

getAppCacheSize(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  cacheSize:0           //数字类型;缓存大小,单位:byte
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.getAppCacheSize(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getCacheSize

获取任意路径下的缓存大小

getCacheSize({params},callback(ret))

params

dir:

  • 类型:字符串
  • 描述:本地路径,支持fs、box、本地可访问路径

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  cacheSize:0           //数字类型;缓存大小,单位:byte
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.getCacheSize({
   dir:''
},function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

clearSettingData

清空设置数据(Android对应app的SharedPreference。iOS端清除偏好设置的数据(Library/Preferences 目录)。

clearSettingData({params},callback(ret))

params

tag:

  • 类型:字符串
  • 描述:数据的tag,iOS端忽略本参数

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status:true       //布尔类型;操作是否成功
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.clearSettingData({
   tag:''
},function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getHomeDirectory

iOS端获取沙盒根目录。

getHomeDirectory(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  homeDir:        //字符串类型;根目录路径
}

示例代码

var cacheManager = api.require('cacheManager');
cacheManager.getHomeDirectory(function(ret) {
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统

可提供的 1.0.0 及更高版本