我正在使用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);
},
);
雷蒙德·卡姆登(Raymond Camden)撰写了一篇不错的文章。使用PhoneGap的进度功能时,可以使用引导程序来显示进度条,以使进度条增长:
fileTransfer.onprogress = function(progressEvent) {
if (progressEvent.lengthComputable) {
loadingStatus.setPercentage(progressEvent.loaded / progressEvent.total);
} else {
loadingStatus.increment();
}
};
在这里阅读
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句