Загружайте изображения и сохраняйте локально в приложении iPhone Phonegap - PullRequest
10 голосов
/ 02 сентября 2010

Мне уже удалось успешно сохранить веб-страницу (x / html), но я также хотел бы сохранить содержащиеся в ней изображения и видео mp4 для дальнейшей визуализации в автономном режиме.

У меня есть доступ к файловой системе iOS, поэтому я сохраняю html, получая код через запрос AJAX, а затем сохраняю его в файл.

Я не знаю, как это сделатьто же самое с видео и изображениями .У меня есть сервер, на который я могу отправлять запросы из своего приложения, поэтому он показывает исключительно контент, который мне нужно загрузить, с оптимальными заголовками в случае необходимости.Я просто не знаю, как «скачать» его со стороны клиента ( Javascript ).

Заранее спасибо за любую помощь.

Ответы [ 4 ]

2 голосов
/ 29 мая 2013

Вы можете использовать объект FileTransfer для загрузки удаленного изображения в локальный файл.

Это последний официальный образец фрагмента:

    // !! Assumes filePath is a valid path on the device

    var fileTransfer = new FileTransfer();
    var uri = encodeURI("http://some.server.com/download.php");

    fileTransfer.download(
        uri,
        filePath,
        function(entry) {
            console.log("download complete: " + entry.fullPath);
        },
        function(error) {
            console.log("download error source " + error.source);
            console.log("download error target " + error.target);
            console.log("upload error code" + error.code);
        },
        false,
        {
            headers: {
                "Authorization": "Basic dGVzdHVzZXJuYW1lOnRlc3RwYXNzd29yZA=="
            }
        }
    );
0 голосов
/ 14 января 2015

Я использовал этот фрагмент в своем проекте приложения ios:

 window.requestFileSystem  = window.requestFileSystem || window.webkitRequestFileSystem;
 window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, fail);

 var target_directory="";

 function fail() {
   //alert("failed to get filesystem");
 }

 function downloadImage(url, filename){
   alert("download just started.");
    try{
        var ft = new FileTransfer();
        ft.download(
           url,
           target_directory + filename, 
           function(entry) {
              //alert("download complete!:" + entry.nativeURL ); //path of the downloaded file 
           },
           function(error) {
              //alert("download error" + error.code);
              //alert("download error" + JSON.stringify(error));
           }
       );
   }
   catch (e){
       //alert(JSON.stringify(e));
   }

}

function success(fileSystem) {
   target_directory = fileSystem.root.nativeURL; //root path 
    downloadImage(encodeURI("http://upload.wikimedia.org/wikipedia/commons/2/22/Turkish_Van_Cat.jpg"), "cat.jpg"); // I just used a sample url and filename
}
0 голосов
/ 28 марта 2012

Еще не тестировал, но документация на PhoneGap выглядит довольно многообещающе http://docs.phonegap.com/en/1.0.0/phonegap_file_file.md.html

0 голосов
/ 04 сентября 2010

Боюсь, вы можете делать это только изначально.Я делаю это через FileDownload PhoneGap Plugin, который я написал, используя NSURLConnection.Я передаю URL для загрузки к плагину через Javascript и целевое местоположение (и это даже дает мне прогресс загрузки).

...