2010-01-01 14 views
6

estoy tratando de cargar los datos HTML analizados desde un RSS con un WebView , pero la vista web afirma que la página:WebView no cargando datos?

"data: text/html; UTF-8, [El html estoy tratando de mostrar]"

no está disponible.

alt text

Me parece extraño que parece estar poniendo los datos HTML en el url, cuando sólo quiero que se muestre la misma.

Aquí está mi código en este momento para la vista web:

Bundle data = getIntent().getExtras(); 

WebView webview = new WebView(this); 
setContentView(webview); 

webview.loadData(data.getString("DEFAULTTEXT"), "text/html", "utf-8"); 

Cuando el HTML ha sido aprobada en una cadena en el paquete con el identificador : DefaultText. He probado la clase y el HTML se aprobó bien, simplemente no se muestra correctamente.

Funciona bien en algunas de las páginas que he probado, pero no otros. Intentaré publicar el código de uno que funcione y otro que no.

+0

También tengo este problema. ¿Alguna vez descubrió una solución? Estoy leyendo una cadena de Java y no se muestra. Pero cuando copio y pego en un archivo .html que abro usando el archivo: ///assets/my.html url, se abre bien. Entonces sé que puede renderizar el html, pero no me gusta cuando está en mi cadena generada. – GrkEngineer

+0

El mismo problema aquí, algunas páginas funcionan, algunas no ... – pambuk

+0

En realidad, loadDataWithBaseURL resolvió el problema. – pambuk

Respuesta

3

Huuu .... así que se convirtió en mi equipo esta mañana y funcionó a la perfección. Todavía no sé cuál fue el problema. :/

Edit: No importa. Funciona en algunas, pero no en todas las páginas que trato de mostrar.

Edit2: cambiarlo por loadDataWithBaseURL funcionaba como un amuleto.

+0

Proboly un error en el emulador. Me alegro de que funcionó –

+0

Oh, espera, funciona en la mitad de las páginas web que trato de mostrar. Arg .. – GuyNoir

+0

El mío funcionó en todos los ámbitos y luego dejó de funcionar para todo un día. loadDataWithBaseURL funciona por ahora, espero que no se rompa tan misteriosamente – Martyn

0

¿Estás seguro de que tiene los permisos correctos definidos en el manifest.xml?

+0

Tengo permisos de internet, estado de audio y estado del teléfono ¿hay otro que necesite? – GuyNoir

1

Creo que este comportamiento esporádico de loadData * se debe a cuál es el contenido de la página que está intentando cargar. Si es simple html, no tiene ningún problema. Pero si tiene componentes como css u otras características que requieran información externa, se rescatará. Mi experiencia!

1

Como se dijo, cuando tiene caracteres como '%', '\', '#' en su HTML, debe escaparse, lo que parece que loadData no se realiza automáticamente.

loadDataWithBaseURL en lugar de loadData se escapa y parece solucionarlo. Solo use null para baseUrl e historyUrl. Entonces el código de ejemplo en la pregunta se cambia a:

Bundle data = getIntent().getExtras(); 

WebView webview = new WebView(this); 
setContentView(webview); 

webview.loadDataWithBaseURL(null,data.getString("DEFAULTTEXT"), "text/html", "utf-8",null);