每个 iOS 程序都有一个独立的文件系统(存储空间),而且只能在对应的文件系统中进行操作,此区域被称为沙盒。应用必须待在自己的沙盒里,其他应用不能访问该沙盒(通过shareAction原生插件分享除外)。当然该应用也不能访问其它应用的沙盒(某些系统资源除外,如系统相册等,编译之前需申请访问权限)。
Documents (fs://协议对应的路径的根目录)保存应用程序的重要数据文件和用户数据文件等。用户数据基本上都放在这个位置(例如从网上下载的图片或音乐文件),该文件夹在应用程序更新时会自动备份,在连接iTunes时也可以自动同步备份其中的数据。
Library/Caches:(cache://协议对应的路径的根目录)保存应用程序使用时产生的支持文件和缓存文件(保存应用程序再次启动过程中需要的信息),还有日志文件最好也放在这个目录。iTunes 同步时不会备份该目录并且可能被其他工具清理掉其中的数据。
它就是持久化数据的一种方式,主打轻量级的用户配置信息。它是单例的,并且是线程安全的,是以键值对的形式保存在沙盒中,最下面还是用plist文件进行保存。 本原生插件即封装了原生的 NSUserDefault 的相关接口。
设置数据
setValueForKey({params},callback(ret))
key:
value:
var UserDefault = api.require('UserDefault');
UserDefault.setValueForKey({
key:'userInfo',
value:{
username:'girl',
password:'123',
sexy: true
}
});
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
根据 key 获取数据
getValueForKey({params},callback(ret))
key:
ret:
## 示例代码
```js
var UserDefault = api.require('UserDefault');
UserDefault.getValueForKey({
key:'userInfo'
},function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
根据 key 移除数据
removeValueForKey({params},callback(ret))
key:
var UserDefault = api.require('UserDefault');
UserDefault.removeValueForKey({
key:'userInfo'
});
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
获取之前设置的所有数据
valueRepresentation(callback(ret))
ret:
var UserDefault = api.require('UserDefault');
UserDefault.valueRepresentation(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
iOS 系统,android 系统
可提供的 1.0.0 及更高版本
设置默认数据
比如: //设置默认值 var UserDefault = api.require('UserDefault'); UserDefault.registerDefaults({ appSkin:'white' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'white'} });
//设置数据 UserDefault.setValueForKey({ key:'appSkin', value:'dark' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'dark'} });
//移除数据 UserDefault.removeValueForKey({ key:'appSkin' });
UserDefault.getValueForKey({ key:'appSkin' },function(ret) { api.alert({msg:JSON.stringify(ret)}); //此时ret是 {appSkin:'white'} });
registerDefaults({params},callback(ret))
defaultJSON:
var UserDefault = api.require('UserDefault');
UserDefault.registerDefaults({
userInfo:{
username:'girl',
password:'123',
sexy: true
}
});
iOS 系统,android 系统
可提供的 1.0.0 及更高版本