Javascript Phonegap 3.3.0 iOS文件系统插件未触发完成、进度或错误

Javascript Phonegap 3.3.0 iOS文件系统插件未触发完成、进度或错误,javascript,jquery,ios,cordova,phonegap-plugins,Javascript,Jquery,Ios,Cordova,Phonegap Plugins,我正在尝试在Phonegap 3.3.0的iOS上使用FileTransfer插件。它过去一直在我的应用程序中工作,但自从我更新了所有库JQuery(1.11.0)、JQuery Mobile(1.4.1)之后,我没有收到任何与文件传输相关的回调 我知道这些文件正在下载,因为我可以看到它们出现在iOS模拟器临时文件等的文件系统中。此外,它们似乎已经完成下载,因为这些文件看起来是完整的 我的代码: function download(url, dest, cb) { var fileTr

我正在尝试在Phonegap 3.3.0的iOS上使用FileTransfer插件。它过去一直在我的应用程序中工作,但自从我更新了所有库JQuery(1.11.0)、JQuery Mobile(1.4.1)之后,我没有收到任何与文件传输相关的回调

我知道这些文件正在下载,因为我可以看到它们出现在iOS模拟器临时文件等的文件系统中。此外,它们似乎已经完成下载,因为这些文件看起来是完整的

我的代码:

function download(url, dest, cb) {

    var fileTransfer = new FileTransfer();
    console.log("remote:"+url+" local:"+dest);

    fileTransfer.onprogress = progress;
    fileTransfer.download(url, dest, downloadSuccess, fail);
}
function progress() {
    console.log("progress:"+arguments);
}
function fail() {
    console.log("fail:"+arguments);
}
function downloadSuccess() {
    console.log("download complete: " + arguments);
}

有没有想过我可能做错了什么?

我想你的回调被触发了,但是你有语法错误,因为你试图使用
参数,但没有定义它

此外,当回调使用console.log中的参数获取对象时,它将只显示“object”。您应该将其字符串化或使用对象的属性

例如:

function download(url, dest, cb) {

    var fileTransfer = new FileTransfer();
    console.log("remote:"+url+" local:"+dest);

    fileTransfer.onprogress = progress;
    fileTransfer.download(url, dest, downloadSuccess, fail);
}
function progress(arguments) {
    console.log("progress:"+Math.floor(100*arguments.loaded/arguments.total)+"%");
}
function fail(arguments) {
    console.log("fail error code:"+arguments.code);
}
function downloadSuccess(arguments) {
    console.log("download complete: " + arguments.bytesSent + " bytes sent");
}

Phonegap 3.3.0的文件系统采用了一种新的方法。如果您一直在使用fullpath进行输入,则需要将其替换为toURL()

您还需要在config.xml文件中添加

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

你最好的办法就是浏览这个链接


做这些改变对我来说很有用。希望它也适用于您。

在每个JavaScript函数中,您都可以访问
参数
数组,该数组包含(您使用它)被调用函数接收的参数。所以这不是问题所在。Apache的bug跟踪系统()中也注册了相同的bug。所以这确实是Phonegap/Cordova文件传输插件中的一个bug。我只是不知道是否已经有了解决方案,或者我们是否只能使用问题中解释的解决方法。