2013-04-17 4 views
6

ich dieses Dateisystem uri zu lösen versuche ich hier:PhoneGap resolveLocalFileSystemURI

/var/mobile/Applications/9483756B-8D2A-42C5-8CF7-8D76AAA8FF2C/Shift.app/iqedata/5977e2e9239649d5a7e3b8a54719679f/06e2b8896e51472789fcc27575631f94.jpg 

Kann jede Stelle mir sagen, wie diese uri in PhoneGap zu lösen und das Fileentry erhalten, indem unter Verwendung des Verfahrens zeigt unten?

window.resolveLocalFileSystemURI(Url, resOnSuccess, resOnError); 

Ich habe versucht, „file: //“ hinzufügen oder „//“ vor der uri aber es funktioniert nicht.

Danke.

Antwort

13

Mit PhoneGap können Sie keine Dateien außerhalb der Ordner [APP HASH]/Documents oder [APP HASH]/tmp lesen. Sofern Sie keine Möglichkeit finden, Ihre App mit Ihren Daten in einem dieser Ordner zu initialisieren, müssen Sie Ihre Daten auf andere Weise erhalten. Ich habe den folgenden Code gefunden, um zu funktionieren. Grundsätzlich lädt es die lokale Datei in Ihren temporären Ordner und gibt Ihnen den Dateieintrag.

window.requestFileSystem(LocalFileSystem.TEMPORARY, 0, function(fs){ 
    fs.root.getFile("temp", {create: true, exclusive: false}, 
     function(entry){ 
     fileTransfer.download(
       Url, // the filesystem uri you mentioned 
       entry.fullPath, 
       function(entry) { 
        // do what you want with the entry here 
        console.log("download complete: " + entry.fullPath); 
       }, 
       function(error) { 
        console.log("error source " + error.source); 
        console.log("error target " + error.target); 
        console.log("error code " + error.code); 
       }, 
       false, 
       null 
     ); 
    }, function(){ 
     alert("file create error"); 
    }); 
}, null); 
+0

Vielen Dank. Dieses Zeug hat mich verrückt gemacht und deine Lösung funktioniert perfekt. Und ein weiterer Trick ist die URI sollte mit file beginnen: /// var/blablabla – esdotzed

+0

Froh, es hat funktioniert! Normalerweise erstelle ich meine Pfade beginnend mit location.href, die bereits die Datei: /// hat. Auf diese Weise muss ich nicht den ganzen Weg fest codieren. –

+0

Großartig! Danke für die Information. – esdotzed