2013-04-17 8 views
6

che sto cercando di risolvere questo filesystem uri illustrato di seguito:PhoneGap resolveLocalFileSystemURI

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

qualsiasi organismo può dirmi come risolvere questo URI in PhoneGap e ottenere il FileEntry utilizzando il metodo che mostra in basso?

window.resolveLocalFileSystemURI(Url, resOnSuccess, resOnError); 

Ho provato ad aggiungere "file: //" o "//" prima di uri ma non funziona.

Grazie.

risposta

13

PhoneGap non consente di leggere i file al di fuori delle cartelle [APP HASH]/Documenti o [APP HASH]/tmp. A meno che tu non riesca a trovare un modo per inizializzare la tua app con i tuoi dati in una di queste cartelle, dovrai ottenere i tuoi dati in un altro modo. Ho trovato il codice seguente per funzionare. Fondamentalmente scarica il file locale nella cartella temporanea e ti dà la voce del file.

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

Grazie mille. Questa roba mi ha fatto impazzire e la tua soluzione funziona perfettamente. E un altro trucco è che l'uri dovrebbe iniziare con il file: /// var/blablabla – esdotzed

+0

Felice che abbia funzionato! Generalmente creo i miei percorsi a partire da location.href, che ha già il file: ///. In questo modo non devo codificare l'intero percorso. –

+0

Ottimo! Grazie per avermi fatto sapere. – esdotzed