Autore Topic: Visualizzare file in una WebView  (Letto 1018 volte)

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Visualizzare file in una WebView
« il: 12 Marzo 2012, 23:52:04 CET »
0
Ho creato un files nella cartella files dell'app... per intenderci  nell'Internal Storage...
questo file è una pagina html che vorrei visualizzare, alla pressione di un tasto, in una WebView...

ho pensato di usare la funzione loadUrl ma qual è l'url giusto da usare? (ho provato file:///files/nome.html e files/nome.html ma niente)

oppure devo per forza leggermi il file, metterlo in una stringa e passarlo a loadData()??

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Visualizzare file in una WebView
« Risposta #1 il: 13 Marzo 2012, 09:49:12 CET »
0
Ciao per fare una cosa del genere devi mettere il tuo file html dentro la cartella res/assets della tua app e richiamarlo in questo modo
Codice (Java): [Seleziona]
InputStream htmlFile = this.getAssets().open("mappa.html");
BufferedReader br = new BufferedReader(new InputStreamReader(htmlFile));
String riga = "";
StringBuffer htmlSource = new StringBuffer();
while ((riga = br.readLine()) != null) {
        htmlSource.append(riga);
}


view.loadDataWithBaseURL("file:///android_asset/", htmlSource.toString(), "text/html", "utf-8", "");

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:Visualizzare file in una WebView
« Risposta #2 il: 13 Marzo 2012, 18:33:37 CET »
0
e come lo sposto in assets??

cioè io ottengo la pagina web e la salvo in un file
questo va a finire nell'internal storage ovvero la cartella /data/data/cartella.pacchetto.applicazione/files

?!?!?

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Visualizzare file in una WebView
« Risposta #3 il: 13 Marzo 2012, 18:36:37 CET »
0
Che vuol dire ottengo la pagina html? Spiega meglio che vuoi fare. Io avevo inteso volessi visualizzare in una webview una pagina html fatta da te che hai incorporato nell'app e non scaricandola da un sito web

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:Visualizzare file in una WebView
« Risposta #4 il: 13 Marzo 2012, 18:43:34 CET »
0
scusami ma pensavo di averlo spiegato bene nel primo post

tramite quanto scritto qua: Data Storage | Android Developers
creo un file nell'internal storage dell'applicazione...in questo file scrivo del codice html che ottengo da una mia pagina web in rete (è dinamica e non posso inserirla nell'applicazione staticamente)
per fare ciò uso FileOutputStream come indicato nell'esempio..

quindi in lettura ho 2 alternative:
dire alla webview di caricarmi quel file html
oppure rileggerlo e visualizzarlo tramite la loadDataWithBaseURL che anche tu hai citato

converrai con me che il primo metodo è sicuramente più efficiente che rileggere un intero file
« Ultima modifica: 13 Marzo 2012, 18:45:12 CET da TheSgrash »

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Visualizzare file in una WebView
« Risposta #5 il: 13 Marzo 2012, 18:45:59 CET »
0
Ma invece di scrivertela nell'internal storage perchè non la mostri direttamente con la webview?

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:Visualizzare file in una WebView
« Risposta #6 il: 13 Marzo 2012, 18:51:48 CET »
0
forse sono ignorante io in materia ma

se lo smartphone/tablet non è connesso ad internet nella webview cosa viene mostrato?
dal basso della mia (poca) conoscenza mi pare di ricordare che si veda la pagina di errore del browser che è bruttarella e stona con l'applicazione...
invece facendo come dico io faccio una sorta di caching spinto in cui mi salvo la pagina in un file in modo che sia SEMPRE consultabile e tramite un button demando all'utente se e quando vuole l'aggiornamento

Offline djdedo

  • Utente normale
  • ***
  • Post: 209
  • Respect: +15
    • Mostra profilo
  • Dispositivo Android:
    Galaxy S2
Re:Visualizzare file in una WebView
« Risposta #7 il: 13 Marzo 2012, 18:56:16 CET »
0
Ora ha più senso ma se ad esempio la pagina contiene anche immagini, script javascript o altro dovresti scaricarti anche questi elementi. Comunque per leggere il file non devi modificare molto del codice che ti ho scritto però hai pensato a come gestire queste cose?
Potresti invece utilizzare secondo me la cache di webview
http://alex.tapmania.org/2010/11/html5-cache-android-webview.html

Offline TheSgrash

  • Nuovo arrivato
  • *
  • Post: 21
  • Respect: 0
    • TheSgrash
    • Mostra profilo
  • Dispositivo Android:
    Motorola Milestone e Asus Transformer
  • Play Store ID:
    Davide TheSgrash
  • Sistema operativo:
    ArchLinux - Win7 - Ubuntu 11.04
Re:Visualizzare file in una WebView
« Risposta #8 il: 13 Marzo 2012, 18:58:57 CET »
0
non c'è javascript e le immagini sono tutte in assets già...

cmq grazie della dritta della cache ora gli do un occhio...