我正在使用 Cordova/Phonegap 编写一个小程序,它基本上从服务器下载文件并放在本地 sd 卡中。这个应用程序目前只能在 Android 上运行。我有这个函数,它使用来自科尔多瓦库的文件传输,它从服务器下载所需的文件。
this.downloadFile=function(){
var filePath = '';
var remoteFile = config.url + 'api_download';
var localFileName = this.constants.currentFileName;
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile(localFileName, {create: true, exclusive: false}, function(fileEntry) {
var localPath = fileEntry.fullPath;
var fullPath = fileEntry.fullPath
var metadata = fileEntry.getMetadata();
if (device.platform === "Android" && localPath.indexOf("file://") === 0) {
localPath = localPath.substring(7);
}
filePath = localPath;
var ft = new FileTransfer();
ft.download(remoteFile,
localPath, function(entry) {
// Now file is downloaded, we need the mimetype
var type = returnMimeType(fullPath);
if(type != ''){
CDV.WEBINTENT.startActivity({
action: CDV.WEBINTENT.ACTION_VIEW,
url: fullPath,
type: type},
function() {},
function() {console.log('Failed to open URL via Android Intent');}
);
console.log("Local Path is :"); console.log(fullPath);
}
}, fail);
}, fail);
}, fail);
}
这很好并且完全按预期工作,但用户不知道文件是否正在下载。我没有办法通知这一点,所以我想知道是否可以使用 Android 的默认下载管理器而不是这种方法。或者我能否以某种方式显示下载进度,它也会解决问题。
谢谢!