2012-09-24 9 views
6

Udało mi się pobrać plik na mój telefon z Androidem za pomocą File API Phonegapa. Chciałbym pobrać plik do folderu Downloads na moim telefonie. Na przykład, jeśli pobierzesz załącznik z wiadomości e-mail, załącznik zostanie przeniesiony do folderu Pobrane. Oto mój kod JS, który pobiera plik „file: // mnt/sdcard /”:Jak pobrać plik do folderu pobierania w Androidzie za pomocą Phonegapa?

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

Musi być jakiś sposób, aby uzyskać dostęp do folderu Downloads, bo widzę tej funkcji przez cały czas w innych aplikacjach.

Odpowiedz

2

Możesz wysłać plik do folderu pobierania przez podanie go w metodzie getfile ...

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

nie wywoła DownloadManager który informuje nas, kiedy plik został pobrany. Nadal próbuję znaleźć rozwiązanie dla dostępu do klasy DownloadManager poprzez phonegap. Zadałem to pytanie tutaj How do you download a file to Android's Downloads folder using Phonegap?

+0

Czy można zapisać pobrany plik w niestandardowym katalogu? –

1

miałem ten sam problem, ale rozwiązać go tak:

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

Stworzyłem plugin, który pobiera plik za pomocą menedżera pobierania i pokazuje pasek postępu po drodze

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

Mam nadzieję, że to pomaga.

Powiązane problemy