2010-09-02 15 views
9

Sono già riuscito a salvare una pagina Web (x/html) con successo, ma mi piacerebbe anche salvare le immagini e i video mp4 che sono contenuti in esso, per ulteriori visualizzazione in modalità offline.Scarica le immagini e salva localmente su iPhone app Phonegap

Ho accesso al filesystem iOS, quindi salvi l'html ottenendo il codice tramite una richiesta AJAX e successivamente salvandolo in un file.

io non so davvero come fare lo stesso con il video e immagini. Ho un server a cui posso inviare query dalla mia app, quindi mostra esclusivamente il contenuto che devo scaricare, con le intestazioni ottimali nel caso sia necessario. Semplicemente non so come "scaricarlo" dal lato client (Javascript).

Grazie in anticipo per qualsiasi aiuto.

+0

Qualsiasi aggiornamento su questo? In definitiva cosa hai deciso? – Crashalot

risposta

0

È possibile farlo solo in modo nativo, ho paura. Lo sto facendo tramite un FileDownload Plugin PhoneGap che ho scritto, usando NSURLConnection. Passo l'url per scaricare il plug-in tramite Javascript e una posizione di destinazione (e mi dà persino il progresso del download).

+0

Ciao, sarebbe possibile per te condividere il tuo codice? Sarei disposto a donare se riuscirò a ottenere quello che sto cercando. – StJimmy

2

È possibile utilizzare un oggetto FileTransfer per scaricare un'immagine remota a un file locale.

Questo è l'ultimo frammento di modello ufficiale:

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

puoi dirmi quale sarà il 'percorso file 'se voglio salvare l'immagine all'interno dell'app? come www/something/file.jpg. – AtanuCSE

+0

Cosa intendi nell'app? Dovrai salvarlo nella SDCard o in una directory di memoria interna. La pagina web è compilata nelle risorse dell'app e non è possibile scrivere lì. –

+0

Ah! ok capito. – AtanuCSE

0

Ho usato questo frammento di codice sul mio progetto 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 
} 
Problemi correlati