当前位置 : 主页 > 手机开发 > cordova >

Cordova / Phonegap – iOS文件系统自定义根路径iosExtraFilesystems无法正常工作

来源:互联网 收集:自由互联 发布时间:2021-06-10
我在iOS上使用了cordova 3.4和org.apache.cordova.file(最新版本1.3.1). 我想将数据存储在Library / NoCloud目录中,我发现在doc中我们应该在config.xml中设置这些变量: preference name="iosPersistentFileLocation
我在iOS上使用了cordova 3.4和org.apache.cordova.file(最新版本1.3.1).

我想将数据存储在Library / NoCloud目录中,我发现在doc中我们应该在config.xml中设置这些变量:

<preference name="iosPersistentFileLocation" value="Library" />
<preference name="iosExtraFilesystems" value="library-nosync" />

但它不起作用,它给了我一个库/文件中的文件系统根,我无法移动到NoCloud目录,因为我们无法获取根库/文件的父.

有人也在努力解决这个问题吗?您是否成功使用了iosExtraFilesystems var?

我正在尝试升级cordova,但在做这件事时还有其他问题..我会发布进一步的进展.

更新:

不使用cordova 3.5,3.6,我在apache的jira跟踪器上创建了一个问题:https://issues.apache.org/jira/browse/CB-7687

谢谢

蒂博

使用resolveLocalFileSystemURL而不是requestLocalFileSystem

最简单的方法(自v1.2.0开始)使用cordova.file.dataDirectory属性.它应该是library-nosync目录的路径.您可以将它与resolveLocalFileSystemURL结合使用,以获取可以在其中创建文件的目录条目对象.

这样的事情应该有效:

resolveLocalFileSystemURL(cordova.file.dataDirectory, function(entry) {
    console.log("Success! Got a DirectoryEntry");
    // Do more things with `entry` here
}, function(error) {
    console.error("Something bad happened, and we didn't get a DirectoryEntry");
});

其他一些说明

澄清您在问题中提到的两个设置:

<preference name="iosPersistentFileLocation" value="Library" />

此首选项只告诉File插件,默认情况下,PERSISTENT文件系统应该将文件存储在设备的Library目录下.如果没有该设置,则默认值为先前Cordova版本(Documents目录)使用的位置.无论如何,库文件系统可供您的应用程序使用(只要您没有使用下一个设置禁用它)

<preference name="iosExtraFilesystems" value="library-nosync" />

除了要安装的默认值(临时和持久)之外,iosExtraFilesystems首选项告诉File插件哪个文件系统根目录.默认情况下,它设置为字符串

"library,library-nosync,documents,documents-nosync,cache,bundle,root"

这已经包含了library-nosync,因此您不必添加它.实际上,以实际方式设置它实际上会从应用程序中删除其他文件系统根.

网友评论