2012-09-24 14 views
6

he descargado correctamente un archivo de mi teléfono Android utilizando la API de archivos de Phonegap. Me gustaría descargar el archivo a la carpeta de Descargas en mi teléfono. Por ejemplo, si descarga un archivo adjunto de un correo electrónico, el archivo adjunto va a su carpeta de Descargas. Aquí está mi código JS, que descarga el archivo a "file: // mnt/sdcard /":¿Cómo se descarga un archivo a Descargas de Android carpeta mediante Phonegap?

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); 

Tiene que haber una manera de acceder a la carpeta Descargas, porque veo esta funcionalidad todo el tiempo en otras aplicaciones.

Respuesta

2

puede enviar el archivo a la carpeta de descarga especificando que en el método getFile ...

getfile('download/myfile.jpg' ...) 

Esto no activa el DownloadManager el cual le notifica cuando un archivo se ha descargado. Todavía estoy tratando de encontrar una solución para tener acceso a la clase DownloadManager a través del teléfono. He hecho esta pregunta aquí How do you download a file to Android's Downloads folder using Phonegap?

+0

¿Es posible guardar el archivo descargado en un directorio personalizado? –

1

que tenían el mismo problema, pero lo resolvió así:

//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, 
    {} 
); 
}); 
0

He creado un plugin que las descargas de archivos usando el gestor de descarga y muestra la barra de progreso en el camino

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); 

espero que ayude.

Cuestiones relacionadas