通过Cordova中的FileTransfer下载文件

Jan*_*zil 4 android file-transfer cordova

我正在使用Cordova开发Android应用程序.我已经熟悉FileTransfer了,我已经知道如何下载文件了.问题是,当我下载一个大文件(20 MB)时,这个下载花了一段时间而没有通知用户实际发生了什么.

所有我管理的是通过以下方式将文件下载到SD卡:

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);
Run Code Online (Sandbox Code Playgroud)

然后向用户显示该文件正在下载的对话框以及他可以找到它的位置.但我希望让用户了解进度.或者是否可以以某种方式在后台处理此文件传输,以便用户可以在Android顶部栏中看到下载图标,就像通过默认浏览器下载文件一样?

非常感谢您的帮助.

码:

document.addEventListener('deviceready', function() {                
    window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, function(){
        console.log("error getting LocalFileSystem");
    });
}, false);

function gotFS(fileSystem) {
    // save the file system for later access
    window.rootFS = fileSystem.root;
}

fileTransfer.download(
    http://somewhere.com/bigfile.zip,
    window.rootFS,
    function(entry) {
        console.log("download complete: " + entry.fullPath);
    },
    function(error) {
        console.log("download error source " + error.source);
    },
);
Run Code Online (Sandbox Code Playgroud)

小智 11

Raymond Camden写了一篇关于此的好文章.您可以使用bootstrap在使用PhoneGap的progress-function时显示进度条,以便让进度条增长:

fileTransfer.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
} else {
loadingStatus.increment();
}
};
Run Code Online (Sandbox Code Playgroud)

在这里阅读