2013-03-07 12 views
12

C'è un modo per ottenere il percorso assoluto di un'immagine nella cartella degli asset di PhoneGap?Ottieni il percorso assoluto alla cartella delle risorse in PhoneGap

Ho bisogno del percorso assoluto per collegare l'immagine in una mail utilizzando il plugin EmailComposer.

EmailComposer plug vuole un percorso assoluto come questo:

/storage/sdcard0/DCIM/Camera/20121124_125210.jpg 

Ma l'immagine che voglio attaccare è nella mia cartella asset e un percorso come questo:

file:///android_asset/www/img/logo.png 

non funziona

risposta

2

Sembra che questo non sia possibile.

Vedi https://groups.google.com/forum/#!topic/phonegap/Sw2wThOYm8c

Dalla risposta di Simon in quel filo afferma ...

"Non si può fare quello che vuoi fare. I file nella directory di beni non sono tecnicamente su il file system in modo che non siano accessibili tramite l'API File .Questo significa chiamare window.fixLocalFileSystemURI() non ti restituirà un FileEntry.Ripresenta correttamente un codice di errore di 1 che è NOT_FOUND_ERR. "

È necessario il percorso assoluto di un file affinché il plug-in degli allegati di posta elettronica funzioni. Sfortunatamente se il file si trova nella cartella delle risorse, non è possibile utilizzare il file API di cordova per ottenere il percorso assoluto.

Esiste un plug-in che esiste per copiare i file dalla cartella delle risorse e posizionarli sulla sdcard. È quindi possibile passare la posizione esatta di questo file al plug-in degli allegati di posta elettronica. Sfortunatamente sembra che il plugin qui sotto non sia aggiornato se stai pensando di utilizzare le versioni più recenti di Cordova.

https://github.com/gkcgautam/Asset2SD

+1

Non posso ancora commentare le risposte di altre persone perché non ho abbastanza punti, ma la risposta di wraith è errata. Vedi la mia risposta sopra come spiegazione del perché non è corretto. Probabilmente ha funzionato su versioni precedenti di Android e PhoneGap, ma sicuramente non funziona su Cordova/Phone 2.0 2.0+.Sfortunatamente questo metodo non funzionerà per i file memorizzati nell'apk. – njtman

9

Nel caso in cui qualcuno sia ancora alla ricerca di una soluzione. Ora Cordova implementa un modo molto semplice per ottenere la directory dell'applicazione corrente (supportata su Android, iOS e BlackBerry 10):

cordova.file.applicationDirectory

Per esempio, se si desidera accedere a un file audio nella directory res/audio (in un raggio il vostro www), devi solo scrivere che:

cordova.file.applicationDirectory + 'res/audio/my-audio-file.mp3'

Ecco la documentazione completa: https://github.com/apache/cordova-plugin-file/#where-to-store-files

+3

Credo che avresti bisogno che sia cordova.file.applicationDirectory + 'www /' + 'res/audio/my-audio-file.mp3' Almeno questo è il modo in cui iOS si sta comportando per me. – edhubbell

+0

Come @edhubbell, avevo anche bisogno di aggiungere 'www /'. – mauvm

+1

cordova.file.applicationDirectory restituisce solo un'eccezione per me (indefinito) – andreimarinescu

Problemi correlati