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 及更高版本