如何使用Phonegap将文件下载到Android的下载文件夹?

时间:2012-09-24 22:54:33

标签: android cordova download cordova-2.0.0

我已使用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);

必须有一种方法可以访问“下载”文件夹,因为我在其他应用程序中始终会看到此功能。

4 个答案:

答案 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应用程序中使用它,它工作正常。