我想将一些数据文件存储在一个非常永久的位置,这应该不与iCloud同步。
根据Cordova文档,cordova.file.cacheDirectory
是我的最佳选择:
cordova.file.cacheDirectory
- 缓存数据文件的目录或您的应用可以轻松重新创建的任何文件。操作系统可能会在设备运行不足时删除这些文件,然而,应用程序不应该依赖操作系统删除此处的文件
为了控制我是否达到目标,我检查iCloud同步的数据大小:
- 安装并启动您的应用
- 转到设置> iCloud>存储&备份>管理存储
- 如有必要,请点击"显示所有应用"检查您应用的存储空间
好吧,我的应用程序总是很重......
这是我到目前为止所做的:
config.xml中
<preference name="BackupWebStorage" value="none" />
<preference name="iosPersistentFileLocation" value="Library" />
的Javascript
function onDeviceReady(){
window.requestFileSystem = window.requestFileSystem || window.webkitRequestFileSystem ;
window.requestFileSYstem(LocalFileSystem.PERSISTENT, 0, gotFS, function(){
console.log('Error FS');
});
}
function gotFS(fileSystem){
window.cacheFS = fileSystem.cacheDirectory;
}
document.addEventListener('deviceReady', onDeviceReady, false);
然后,我使用cacheFS.toURL()
作为基本目录来存储文件。
你能看到我错过了吗?
Apple说,不应该同步的数据应该有一个&#34;不要备份&#34;属性,NSURL对象的NSURLIsExcludedFromBackupKey
属性,CFURLRef对象的kCFURLIsExcludedFromBackupKey
属性。我不知道这些对象是什么,以及如何使用Cordova应用属性......
答案 0 :(得分:1)
实际上,我发现在app文档目录的根目录下创建了一个NoCloud
文件夹。存储在此文件夹中的所有数据都不会上传到iCloud。
答案 1 :(得分:0)
您可以使用以下内容获取文件:
window.resolveLocalFileSystemURL(
cordova.file.dataDirectory,
function gotDir(dir) {
console.log("Data directory located");
dir.getFile("new_file", {create:true},
function(file) {
console.log("got the file", file);
file.createWriter(this.gotFileWriter,
function fail() {
console.log("Unable to create the writer");
});
});
},
function fail() {
console.log("Unable to locate the data dir");
});