以下代码下载多个文件,但进度条未更新。如果我删除循环并仅下载一个文件,它会更新。即使进度条在多个文件之前工作,但不知道我现在做错了。我也试过把var fileTransfer = new FileTransfer();外循环
for(i=0;i<lesson_audio.length;i++){
var fileTransfer = new FileTransfer();
var filePath = fs_path+"/"+lesson_audio[i];
var uri = encodeURI("http://myurl/"+lesson_audio[i]);
fileTransfer.onprogress = function(progressEvent) {
perc = Math.floor((progressEvent.loaded / progressEvent.total) * 100);
$('#progress-bar').val(perc);
$('#progress-bar').slider('refresh');
}
fileTransfer.download(
uri,
filePath,
function(entry) {
$("#progress-text").html($("#progress-text").html() + "download complete:" + entry.fullPath + "\n");
},
function(error) {
$("#progress-text").html($("#progress-text").html() + "download error:" + error.source + "\n")
}
);
}
答案 0 :(得分:0)
您是否考虑过下载一个包含您想要下载的所有文件的文件?就像文件图一样。您正在下载一个文件,将其读出然后将所有条目(您要下载的文件)放入一个数组中。 那么你有一个你想要下载的文件条目数组,每次下载文件(使用pop)时,数组都在缩小。然后,您可以显示实际文件的进度以及要下载的所有文件的总进度,因为您知道文件映射的长度 - 开头的数组,并删除每个成功下载的条目。
Simon McDonalds写了一篇非常好的主旨Here