我正在尝试使用带有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);
}
关于我可能做错什么的任何想法?
答案 0 :(得分:1)
我认为你的回调被触发但是你有语法错误,因为你试图使用arguments
参数但是没有定义它。
此外,由于回调采用对象,使用console.log中的参数,它只会显示“对象”。您应该对其进行字符串化或使用对象的属性。
例如:
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");
}
答案 1 :(得分:1)
Phonegap 3.3.0的Filesystem有一种新方法。如果您一直使用fullpath进行输入,则需要将其替换为toURL()。
同样在您的config.xml文件中,您必须添加
<preference name="iosPersistentFileLocation" value="Compatibility" />
您最好的选择是查看此链接https://github.com/apache/cordova-plugin-file/blob/dev/doc/index.md
让这些改变对我有用。希望它也适合你。