Phonegap多文件下载带进度条

时间:2013-09-18 21:01:51

标签: cordova download

以下代码下载多个文件,但进度条未更新。如果我删除循环并仅下载一个文件,它会更新。即使进度条在多个文件之前工作,但不知道我现在做错了。我也试过把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")

                    }
                );

    }

1 个答案:

答案 0 :(得分:0)

您是否考虑过下载一个包含您想要下载的所有文件的文件?就像文件图一样。您正在下载一个文件,将其读出然后将所有条目(您要下载的文件)放入一个数组中。 那么你有一个你想要下载的文件条目数组,每次下载文件(使用pop)时,数组都在缩小。然后,您可以显示实际文件的进度以及要下载的所有文件的总进度,因为您知道文件映射的长度 - 开头的数组,并删除每个成功下载的条目。

Simon McDonalds写了一篇非常好的主旨Here