我只是通过Cordova源代码来试图找出一些东西,目前有六种替代方法/属性来访问文件的路径. 目前(使用iOS运行),有: // Propertiesfile.fullPath; // file:///full/path/syntax/filefile.nativeURL; // file:///ful
目前(使用iOS运行),有:
// Properties file.fullPath; // file:///full/path/syntax/file file.nativeURL; // file:///full/path/syntax/file // Method(s) file.toInternalURL(); // formats the file.fullPath into a cdvfile://localhost/persisten/file. file.toURL(); // if file.nativeURL is set, uses file.nativeURL, otherwise use file.toInternalURL() or file.fullPath. // Deprecated method(s) file.toURI(); // deprecated - calls file.toURL(); file.toNativeURL() // deprecated - calls file.toURL();
我理解两个都被弃用 – 它们都指向file.toURL() – 所以我可以忽略它们并专注于四种方法.
但file.fullPath和file.nativeURL之间的区别是什么 – 它们完全相同?它们都是文件对象的属性 – 都可以公开访问.
据我所知,file.toURL()使用这两个 – 首先是file.nativeURL,如果没有,那么file.toInternalURL()或者失败,然后是file.fullPath.
最后,file.toNativeURL()返回一个cdvfile://格式化的位置.
因此,大多数方法都指向file.nativeURL属性. file.toURL()是否可以使用,因为它处理所有实例?如果是这样,那么cdvfile://到底是什么?
谢谢
file.fullPath是规范的一部分,实际上应该是:/ path / relative / to / my / root.如果你发现它有file:///,那就是一个bug.file.nativeURL是一个实现细节.但遗憾的是,它并没有明显的标记.它不是规范的一部分,并且在其他平台上不存在.
file.toURL()可能就是你想要的.它是规范的一部分,为您提供了一个可以传递给resolveLocalFileSystemURL的URL,并且与cdvfile:URL相比具有更少的陷阱.
file.toInternalURL()不是规范的一部分,但它是Cordova特定的扩展.我不认为使用它会是一件有用的事情.