2010-09-02 11 views
9

Ya he logrado guardar una página web (x/html) con éxito, pero también me gustaría guardar las imágenes y los videos mp4 que contiene, para obtener más información. visualización en modo fuera de líneaDescargue imágenes y guárdelas localmente en la aplicación iPhone Phonegap

Tengo acceso al sistema de archivos iOS, así que guardo el html obteniendo el código a través de una solicitud AJAX, y luego guardándolo en un archivo.

Realmente no sé cómo hacer lo mismo con video y imágenes. Tengo un servidor al que puedo enviar consultas desde mi aplicación, por lo que muestra exclusivamente el contenido que necesito descargar, con los encabezados óptimos en caso de que sea necesario. Simplemente no sé cómo "descargarlo" desde el lado del cliente (Javascript).

Gracias de antemano por cualquier ayuda.

+0

Cualquier actualización sobre esto? ¿Qué decidiste finalmente? – Crashalot

Respuesta

0

Solo puede hacerlo de forma nativa, me temo. Lo estoy haciendo a través de un plugin FileDownload PhoneGap que escribí, usando NSURLConnection. Paso la url para descargar al plugin a través de Javascript y una ubicación de destino (y hasta me da el progreso de la descarga).

+0

Hola, ¿sería posible que compartieras tu código? Estaría dispuesto a donar si logro lo que estoy buscando. – StJimmy

2

Puede utilizar un objeto FileTransfer descargar una imagen remota en un archivo local.

Este es el último fragmento de la muestra oficial:

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

¿me puede decir cuál será el 'filepath' si quiero guardar la imagen dentro de la aplicación? como www/algo/archivo.jpg. – AtanuCSE

+0

¿Qué quieres decir con la aplicación? Tendrá que guardarlo en la tarjeta SD o en un directorio de memoria interna. La página web está compilada en los recursos de la aplicación y no puede escribir allí. –

+0

¡Ah! Ok lo tengo. – AtanuCSE

0

He utilizado este fragmento en mi proyecto de aplicación para 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 
} 
Cuestiones relacionadas