2010-09-02 11 views
9

Ich habe bereits erfolgreich eine Webseite (x/html) erfolgreich gespeichert, aber ich möchte auch die Bilder und mp4 Videos, die darin enthalten sind, für weitere speichern Visualisierung im Offline-Modus.Bilder herunterladen und lokal auf iPhone Phonegap App speichern

Ich habe Zugriff auf das iOS-Dateisystem, also speichere ich das HTML, indem ich den Code durch eine AJAX-Anfrage erhalte, und speichere es später in einer Datei.

Ich weiß nicht wirklich, wie man das gleiche mit Video und Bilder. Ich habe einen Server, an den ich Anfragen von meiner App senden kann, so dass er ausschließlich den Inhalt anzeigt, den ich herunterladen muss, mit den optimalen Kopfzeilen, falls es notwendig ist. Ich weiß nur nicht, wie man es von der Klientenseite "herunterlädt" (Javascript).

Vielen Dank im Voraus für jede Hilfe.

+0

Jedes Update auf das? Was hast du letztendlich entschieden? – Crashalot

Antwort

0

Du kannst es nur nativ machen, fürchte ich. Ich mache es durch ein FileDownload PhoneGap Plugin, das ich geschrieben habe, mit NSURLConnection. Ich gebe die URL ein, um das Plugin über Javascript herunterzuladen, und einen Zielort (und es gibt sogar den Download-Fortschritt).

+0

Hallo, wäre es möglich, dass Sie Ihren Code teilen? Ich wäre bereit zu spenden, wenn ich erreichen kann, wonach ich suche. – StJimmy

2

Sie ein FileTransfer-Objekt verwenden, kann ein Remote-Image in einer lokalen Datei zum Download bereit.

Dies ist der neueste offizielle Probe-Schnipsel:

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

können Sie mir bitte sagen, was der 'Dateipfad' ist, wenn ich das Bild in der App speichern möchte? wie www/etwas/file.jpg. – AtanuCSE

+0

Was meinst du in der App? Sie müssen es in der SD-Karte oder in einem internen Speicherverzeichnis speichern. Die Webseite ist in den App-Ressourcen kompiliert und Sie können dort nicht schreiben. –

+0

Ah! OK habe es. – AtanuCSE

0

ich diesen Schnipsel auf meinem ios app Projekt verwendet habe:

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 
}