2013-01-31 6 views
10

Ho un file nella memoria interna del mio tablet. /myfolder/subfolder/index.html. Come posso caricare questo in una webview di un'app.caricare un file somefile.html dalla memoria interna a una webview di un'app

ho provato

webview.loadURL("file:///myfolder/subfolder/index.html"); 

ma non sta dando i risultati attesi. dice che la pagina web non è disponibile.

So come caricare dalla cartella delle risorse o dal Web/Internet. ma ho bisogno di caricare il file locale in webview. È possibile.?

+0

speranza seguente URL aiuterà te: http://stackoverflow.com/questions/5749569/load-local-html-file-into-webview –

risposta

6

sono riuscito a risolvere il mio problema utilizzando la seguente come percorso:

webview.loadURL("file:///mnt/sdcard/myfolder/subfolder/index.html"); 
+1

Si noti che l'app deve disporre dell'autorizzazione Phuong

2

Metti i file html nella cartella delle risorse per accedere alla pagina come indicato di seguito.

webview.loadURL("file:///"+mContext.getFilesDir()+"/myfolder/subfolder/index.html"); 

devi menzionare l'asset Android mentre accedi alle pagine html nelle risorse di Android.

+0

Spero tu abbia visto completamente la mia domanda. So come caricarlo dalla cartella delle risorse. ma non lo voglio – SKK

+0

scusa amico .. hai dichiarato questa autorizzazione e provalo

+0

è ok. ma ho bisogno di quelli per leggere un file nella memoria locale? io non la penso così – SKK

21
File file = new File("/data/data/packagename/foldername/"); 
webView.loadUrl("file:///" + file); 
+0

grazie per il tuo tempo. – SKK

+0

"/ foldername /" + "nomefile" funziona –

+0

da dove viene il nome della cartella? È solo una cartella creata dallo sviluppatore o è intrinseca alla memoria interna? Ad esempio, se creo un file temp.pdf come this context.openFileOutput ("temp.pdf", context.MODE_PRIVATE); il file sarà archiviato in una cartella o l'url sarà semplicemente file: ///data/data/packagename/temp.pdf? –

5

Un'app non può accedere ai dati dalla memoria interna archiviata da un'altra app. Le autorizzazioni vengono applicate alla memoria interna che rende i dati scritti da un'applicazione non accessibile al di fuori di tale applicazione (la tua app non può leggere nulla scritto da un'altra app).

Quindi, se si accede a un file che non è stato creato dalla propria app, AFAIK, non è possibile accedervi.

BTW, è possibile accedere al file dalla memoria interna come sotto,

webview.loadURL("file:///data/data/com.yourproject.example/files/index.html"); 
+0

grazie per questa informazione. e sono stato in grado di caricare l'html utilizzando "file: /// mnt/sdcard/myfolder/sottocartella/indexhtml" – SKK

+0

dalla sdcard.? destra.? –

+0

non ho una scheda SD. ma, ho usato un file explorer, cliccato sul file html, mi ha dato la possibilità di selezionare un'applicazione per aprirlo. ho dato il browser e ho trovato il percorso nell'area di inserimento dell'URL. – SKK

Problemi correlati