2016-05-17 10 views
1

bin ich ein Bild in den lokalen Speicher mit diesem Code Download:Cordova Filetransfer-Show heruntergeladene Bild

function saveImageToPhone(url, file) { 

    var plat = device.platform; 
    var deferred = $q.defer(); 
    var url = url; 
    if(plat == "iOS"){ 
     var filePath = cordova.file.dataDirectory + "files/img/" +file; 
    }else{ 
     var filePath = cordova.file.applicationStorageDirectory + "files/img/" +file; 
    } 

    var fileTransfer = new FileTransfer(); 
    var uri = encodeURI(url); 

    fileTransfer.download(
     uri, 
     filePath, 
     function(entry) { 
     console.log(entry); 
     deferred.resolve(); 

     }, 
     function(error) { 
     console.log("error"); 
     deferred.resolve(); 

     }, 
     true 
    ); 

    return deferred.promise; 
    } 

ich bin Anzeige des Bildes mit:

<img src="file:///var/mobile/Containers/Data/Application/0C911347-00D1-4133-9186-D9653E64B572/Library/NoCloud/files/img/{{myimagename}}.jpg"> 

Der obige Code funktioniert gut in Android (mit anderem src-Pfad). Das Bild wird heruntergeladen, gespeichert und in frontedn angezeigt.

Mit iOS auf den Erfolg Funktion Download aufgerufen und xCode Debugger zeigt mir die positive Antwort:

{"isFile":true,"isDirectory":false,"name":"3866938200000.1.jpg","fullPath":"/files/img/3866938200000.1.jpg","filesystem":"<FileSystem: library-nosync>","nativeURL":"file:///var/mobile/Containers/Data/Application/2A84F1F2-56D7-419A-B915-905C32FE851C/Library/NoCloud/files/img/3866938200000.1.jpg"} 

Aber das Bild ist nicht im Frontend angezeigt. Gibt es eine Möglichkeit, das Dateisystem von iOS (ohne Jailbreak-Gerät) zu überprüfen, ob die Datei tatsächlich da ist? Oder fehlt mir etwas? Ist der src-Pfad meines Bildes korrekt?

Vielen Dank im Voraus

+0

Ich habe gesehen, dass diese Kennung "0C911347-00D1-4133-9186-D9653E64B572" nach einem Neustart der App nicht identisch ist. Gibt es eine Möglichkeit, diese Kennung persistent zu bekommen? – m1crdy

Antwort

2

Ich seeying, dass Sie cordova Datei Plugin

Sie sollten den Weg in den $ Umfang speichern verwenden, so dass Sie es zu Ihrem HTML

In Ihrem Controller anhängen :

$scope.path = cordova.file.dataDirectory 

Und in Ihrem hTML

<img src="{{path}}Library/NoCloud/files/img/{{myimagename}}.jpg"> 
+0

Danke! Ich wusste nicht, dass die UUID nach einem Neustart neu berechnet wird. Vielen Dank! – m1crdy

+0

Können Sie die Upvote entfernen und nur die angenommene Antwort bitte? Ich möchte ein Abzeichen gewinnen :) – Del

+0

Sie müssen zuerst bearbeiten – m1crdy

Verwandte Themen