¿WebView no carga datos?
Estoy tratando de cargar los datos html analizados de un feed rss utilizando un WebView, pero la webview afirma que la página:
"Data: text / html; utf-8, [El html que intento mostrar]"
- Desactivar la barra de direcciones en la vista web de Android
- (Android) ¿Existe una manera de detectar cuándo se ha seleccionado el texto en una vista web?
- ¿Por qué mi youtube en webview reproduce sólo sonido?
- Interrupciones de la interfaz de Android 4.2.1, WebView y javascript
- ¿Cuál es el significado de PicturePileLayerContent (...): Warning: painting PicturePile sin contenido
no está disponible.
Me parece extraño que parece estar poniendo los datos html en la url, cuando sólo quiero que se muestre.
Aquí está mi código ahora mismo para la webview:
Bundle data = getIntent().getExtras(); WebView webview = new WebView(this); setContentView(webview); webview.loadData(data.getString("DEFAULTTEXT"), "text/html", "utf-8");
Donde el HTML se ha pasado en una cadena en el Bundle con el identificador: DEFAULTTEXT. He probado la clase y el HTML se pasa bien, simplemente no se muestra correctamente.
Funciona bien en algunas de las páginas web que he probado, pero no en otras. Voy a tratar de publicar el código de uno que funciona y otro que no.
- ¿Cómo abrir un nuevo navegador desde WebViewClient?
- Admob bloquea nuestra aplicación con NullPointerException en DeviceMotionService
- Android WebView lanza "peticiones de origen cruzado sólo son compatibles con http" excepción al intentar cargar recursos desde el disco
- ¿Cómo mostrar una barra de carga al renderizar con Webview.loadUrl en android?
- ANDROID / WEBVIEW- Uncaught TypeError: Object no tiene ningún método 'changeActivity' en el archivo:
- La vista web de Android no puede convertir el video de youtube incrustado a través de iframe
- Cómo pasar html string a webview en android
- JavascriptInterface en el WebView de Android: múltiples llamadas a JS causan interbloqueo
Huuu …. así que me di vuelta a mi computadora en esta mañana y funcionó perfectamente. Todavía no sé cuál era el problema. : /
Editar: No importa. Funciona en algunas, pero no en todas las páginas que intento mostrar.
Edit2: intercambiarlo por loadDataWithBaseURL funcionó como un encanto.
Creo que este comportamiento esporádico de loadData * es debido a lo que es el contenido de la página que está tratando de cargar. Si es simple html simple no tiene ningún problema. Pero si tiene componentes como css u otras características que requieren información externa, se rescate. ¡Mi experiencia!
Como se ha dicho, cuando tienes caracteres como '%', '\', '#' en tu código HTML, necesita ser escapado que no parezca hacer loadData automáticamente.
LoadDataWithBaseURL en lugar de loadData se escapa y parece arreglar esto. Sólo use null para baseUrl y historyUrl. Por lo tanto, 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);
¿Está seguro de que tiene los permisos correctos definidos en el manifest.xml?
- Detectar el recorte en Android TextView
- Escritura de arreglos de Parcelables a un paquete en Android