Phonegap 3.0 FileTransfer下载不起作用

我正在下载一个多部分mime编码的图像到iOS像这样:

var ft = new FileTransfer(); url = encodeURI(url); ft.download(url, path, function(fileEntry) {}, function(err) {}); 

 path = "file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg" 

并得到以下错误:

 body: "Could not create path to save downloaded file: The operation couldn't be completed. (Cocoa error 513.)" code: 1 (file not found) http status: 200 

这暗示了一个无效的path,但我看不出有什么问题。 我得到这样的path:

 path = fs.root.toURL(); 

其他一切正常,文件可以存储在完全相同的path通过拍照。 只是不通过FileTransfer下载。

Phonegap 3.0中的任何想法或错误? 谢谢!

更新 – 解决方法

FileWriter的作品,现在甚至在iOS和Android上保存blob。 示例代码:

 var xhr = new XMLHttpRequest(); xhr.open('GET', url, true); xhr.responseType = 'arraybuffer'; xhr.onload = function() { var blob = new Blob([xhr.response], {type: 'image/jpeg'}); // save via FileWriter }; xhr.send(); 

我在iOS中发现了这个问题:

path:path =“file://localhost/var/mobile/Applications/D702F059-A29F-4FF4-A165-D4A903DEDE7D/Documents/captured/2419747919.jpeg”

不起作用,因为它是一个带有“localhost”的URL。

从Cordova的FileEntry中,可以在Android上使用“fullPath”和“toURL”…获得一个string,它们都可以写入一个文件。 在iOS上只有完整path工作…该URL没有成功写入文件!

在iOS模拟器上工作时,我遇到了问题,但是一旦我在实际设备上testing了它,它就工作了。

使用nativeURL来获取前缀并将文件名附加到它并将其传递给FileTransfer对象。

你会想要使用FileEntry.toURL()来得到一个如下所示的path:

 cdvfile://localhost/persistent/path/to/file 

请参阅这里的文档: https : //github.com/apache/cordova-plugin-file-transfer