我已使用Phonegap的File API成功将文件下载到我的Android手机。我想将文件下载到手机上的“下载”文件夹中。例如,如果从电子邮件下载附件,附件将转到“下载”文件夹。这是我的JS代码,它将文件下载到“file:// mnt / sdcard /”:
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function(fileSystem) {
fileSystem.root.getFile('myfile.jpg', {
create: true,
exclusive: false
}, function(fileEntry) {
var localPath = fileEntry.fullPath,
fileTransfer = new FileTransfer();
fileTransfer.download(uri, localPath, function(entry) {
console.log("download complete: " + entry.fullPath);
}, function (error) {
console.log('download error: ' + error.code);
console.log("download error source " + error.source);
console.log("download error target " + error.target);
});
}, downloadError);
}, downloadError);
必须有一种方法可以访问“下载”文件夹,因为我在其他应用程序中始终会看到此功能。
答案 0 :(得分:3)
您可以通过在getFile方法中指定文件将文件发送到下载文件夹...
getfile('download/myfile.jpg' ...)
这不会触发DownloadManager,它会在下载文件时通知您。我仍在尝试找到通过phonegap访问DownloadManager类的解决方案。我在How do you download a file to Android's Downloads folder using Phonegap?
提出了这个问题答案 1 :(得分:2)
我创建了一个插件,使用下载管理器下载文件并显示进度条
https://github.com/vasani-arpit/cordova-plugin-downloadmanager
//after device is ready
var fail = function (message) {
alert(message)
}
var success = function (data) {
console.log("succes");
}
cordova.plugins.DownloadManager.download("Your URL to download", success, fail);
我希望它有所帮助。
答案 2 :(得分:1)
我遇到了同样的问题,但我解决了这个问题:
//if IOS cordova.file.documentsDirectory
window.resolveLocalFileSystemURL(cordova.file.externalDataDirectory, function (fileEntry) {
var filepath = fileEntry.toURL() + filename;
var fileTransfer = new FileTransfer();
console.log('FilePath ' + filepath);
fileTransfer.download(uri, filepath,
function (fileEntry) {
console.log("download complete: " + fileEntry.toURL());
},
function (error) {
console.log("ErrorDownload: " + JSON.stringify(error));
},
true,
{}
);
});
答案 3 :(得分:-1)
使用此插件:https://github.com/sgrebnov/cordova-plugin-background-download。我在我的Cordova应用程序中使用它,它工作正常。