2015-05-24 9 views
13

Sto sviluppando un'applicazione che utilizza WebView per il rendering di html personalizzato. Ma quando chiamo
loadDAtaWithBaseURL(URL, "<html><h1>TEST</h1></html>", "text/html; charset=utf-8;", "utf-8", null);
mostra html stesso (non reso uno) sull'emulatore Genymotion. Sul mio HTC-one, funziona perfettamente con l'html renderizzato. Ogni risultato è mostrato come allegato.WebView mostra source html con loadDataWithBaseURL, visualizzazione non renderizzata

Shown result on Genymotion emulator Shown result on HTC one

Qualcuno ha un problema o una soluzione stessa? Grazie.

+15

Scusate ragazzi, lo risolvo da solo. "text/html; charset = utf-8;" è il problema e dovrebbe essere solo "text/html". – user2779344

+1

voglio comprarti un uomo di birra. Mi hai salvato. – Kinggeov

risposta

0

Per quanto riguarda le informazioni che hai dato, non posso avere un debug chiara per il rilascio, ma questo è come dovrebbe essere fatto, solo per controllare se vi siete persi qualcosa

  1. In primo luogo, aggiungere questa riga per la vostra attività nel file manifesto

  2. caricare i dati utilizzando

    public void loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl);

E questo viene fatto in questo modo

loadDataWithBaseURL(Url, data, "text/html", "UTF-8", historyUrl) 

Nota che

Se l'URL di base usa lo schema dei dati, questo metodo è equivalente a chiamare loadData() e historyUrl viene ignorato e i dati verranno trattati come parte di un dato: URL. Se l'URL di base utilizza qualsiasi altro schema, i dati verranno caricati in WebView come una stringa semplice (ovvero non fa parte di un URL di dati) e qualsiasi entità con codifica URL nella stringa non verrà decodificata.