2012-09-24 3 views
6

Ich habe erfolgreich eine Datei auf mein Android-Handy mit Phonegap Datei-API heruntergeladen. Ich möchte die Datei in den Downloads-Ordner auf meinem Telefon herunterladen. Wenn Sie beispielsweise einen Anhang aus einer E-Mail herunterladen, wird der Anhang in Ihren Downloads-Ordner verschoben. Hier ist meine JS-Code, der die Datei herunterlädt, um „file: // mnt/sdcard /“:Wie lade ich eine Datei mit Phonegap in den Android-Ordner "Downloads" herunter?

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

Es muss einen Weg geben, um den Download-Ordner zugreifen, weil ich diese Funktionalität sehen die ganze Zeit in anderen Apps.

Antwort

2

Sie können durch die Angabe in der getFile Methode ...

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

Dies löst keine Downloadmanager, die Sie benachrichtigt, wenn eine Datei heruntergeladen wurde die Datei in den Download-Ordner senden. Ich versuche immer noch, eine Lösung für den Zugriff auf die DownloadManager-Klasse über Phonegap zu finden. Ich habe diese Frage hier gestellt How do you download a file to Android's Downloads folder using Phonegap?

+0

Kann die heruntergeladene Datei in einem benutzerdefinierten Verzeichnis gespeichert werden? –

1

hatte ich das gleiche Problem, aber ich löste es wie folgt aus:

//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

ich ein Plugin erstellt haben, die Datei-Download-Manager heruntergeladen und zeigt Fortschrittsbalken auf dem Weg

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

Ich hoffe, es hilft.

Verwandte Themen