我为iOS编写了一个cordova应用程序。我的所有文件都必须驻留在Library/NoCloud
或Documents/NoCloud
中(一个要求本地文件可能无法同步,无论是云还是任何备份)。
在cordova的config.xml中,我输入了以下文件:
<preference name="iosPersistentFileLocation" value="Compatibility" />
<preference name="iosExtraFilesystems" value="documents-nosync" />
我也试过
<preference name="iosPersistentFileLocation" value="Library" />
<preference name="iosExtraFilesystems" value="library-nosync" />
接下来,我使用以下Javascript代码请求文件系统:
window.requestFileSystem(window.PERSISTENT, 1024 * 1024 * 20, onInitFs, fileErrorHandler);
此调用成功,我将文件系统存储在全局变量中。接下来,我尝试使用以下代码检查目录是否存在:
window.resolveLocalFileSystemURL(directoryToCreate, resolveLocalFileSystemURLcallBackExists, onDirectoryExistsFail);
function resolveLocalFileSystemURLcallBackExists(path){
try {
fileSystem.root.getDirectory(path, { create: false }, onDirectoryExistsSuccess, onDirectoryExistsFail);
} catch (e) {
console.log(e);
}
}
现在,当我在某个时候调试iOS项目时,会调用以下Objective-C代码:
- (NSString *)fullPathForFileSystemPath:(NSString *)fsPath
{
if ([fsPath hasPrefix:self.fsRoot]) {
return [fsPath substringFromIndex:[self.fsRoot length]];
}
return nil;
}
此函数始终返回nil
,fs.root
指向/var/.../Libriry/files
,directoryToCreate
为file:///var/.../Library/NoCloud/mydir
或file:///var/.../Documents/NoCloud/mydir
。
Cordova版本:5.1.1
文件插件版本:3.0.0
如何写入file:///var/.../Library/NoCloud/
而不是files
子文件夹?