【问题标题】:Download file via FileTransfer in Cordova通过 Cordova 中的 FileTransfer 下载文件
【发布时间】:2013-09-28 06:41:37
【问题描述】:

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

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

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, onFileSystemSuccess, fail);

然后向用户显示该文件正在下载的对话框以及他在哪里可以找到它。但我想让用户知道进度。或者是否有可能以某种方式在后台处理此文件传输,以便用户可能会在 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);
    },
);

【问题讨论】:

  • @jan.zdrazil...显示您的更多代码以供理解......
  • 现在包含在问题中。

标签: android cordova file-transfer


【解决方案1】:

Raymond Camden 就此写了一篇不错的文章。 您可以在使用 PhoneGap 的进度功能时使用 bootstrap 来显示进度条,以便让进度条增长:

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

阅读here

【讨论】:

  • 谢谢你的帮助,这对我来说已经足够了。
  • 如果找到有用的答案,请不要忘记“投票”。谢谢,很高兴我能帮助你。
  • 我做了,但我的声誉低于 15,所以我做不到。所以我很抱歉。
  • @TorchMan 我确实代表 jan.zdrazil 投了赞成票。因为这对我也有帮助。
猜你喜欢
  • 1970-01-01
  • 2014-07-30
  • 1970-01-01
  • 1970-01-01
  • 2017-06-28
  • 1970-01-01
  • 1970-01-01
  • 2019-05-10
  • 2016-03-25
相关资源
最近更新 更多