Definir peculiaridad para WebView
Tengo una aplicación que contiene un WebView. Cuando <!DOCTYPE html>
no está definido en una página HTML, produce errores inesperados, ya que los fragmentos que ejecuto sólo son compatibles con HTML5 .
Así que en lugar de escribir <!DOCTYPE html>
cada vez, puedo simplemente establecer quirk predeterminado (quirk es una declaración HTML predeterminada que se utilizará si no se especifica la versión HTML de una página).
- La aplicación Android de Alibaba causa bloqueo cuando intenta abrir una URL
- Método restorePicture de WebView - Impedir que la vista web vuelva a cargar la página
- Después de un tiempo de uso, mi aplicación se congela durante el desplazamiento de un WebView, diciendo "no se pudo bloquear la superficie"
- Detectar el cambio de ubicación de la URL de webview de Android
- La navegación privada está obsoleta en Android WebView desde la API 17. ¿Cuál es la alternativa?
Por lo tanto, si la declaración HTML de la página no se especifica, se renderizará automáticamente en HTML5.
¿Alguna idea sobre cómo hacer esto? Los principales navegadores utilizan esta técnica (incluido Chrome para Android) .
EDITAR
Tengo 500+ snippets como este usando directamente incrustado SVG etc –
<svg width="300" height="200"> <polygon points="100,10 40,198 190,78 10,78 160,198" style="fill:lime;stroke:purple;stroke-width:5;fill-rule:evenodd;" /> </svg>
Estos fragmentos no se ejecutan bien en otras versiones de HTML. En realidad, no tengo ningún problema en escribir <!DOCTYPE html>
en cada página, pero estoy preocupado por mis clientes que pueden ver, editar y modificar mis fragmentos o incluso crear un nuevo fragmento .
Le di mi aplicación a mis amigos para la prueba y muchos de ellos se quejaron de los fragmentos que crearon no funcionan correctamente y creo que el mismo tipo de cosa puede suceder con mis clientes también.
Por favor ayuda
- Youtube Video en WebView no se carga
- ¿Cómo obtener bordes y tamaños precisos en la vista Web de Android KitKat (Android Chrome) en Nexus 7?
- Android WebView enlaces a la misma ventana con destino = _blank para abrir una nueva ventana
- Inyectar CSS a un sitio con webview en android
- Activar opción de zoom en WebView Android
- Política de seguridad de contenido de WebView
- Cómo obtener la actividad de vista Web para desaparecer con PDF Link Action_view
- ¿Qué está causando esto en android webView?
EDIT: Chrome para Android no utiliza WebView [ Origen ]:
¿Esto significa que Chrome para Android utiliza WebView?
No, Chrome para Android es independiente de WebView. Ambos están basados en el mismo código, incluyendo un motor de JavaScript y motor de renderizado común.
Por lo que han añadido esta funcionalidad encima del comportamiento normal de WebView. Lo que quieres lograr no es posible.
Creo que la única manera esto sería posible (basado en mis búsquedas) es anular el comportamiento de WebView
y hacer algo como esto en su lugar:
- Captura la URL deseada
- Utilice
HttpClient
para obtener el contenido de la página - Compruebe la etiqueta <! DOCTYPE> y agregue si no existe
- Utilice
WebView.loadDataWithBaseURL
para representar el HTML en elWebView
y especifique la url de base capturada en el paso 1
Obviamente esto es muy hacky y no puedo confirmar si funciona en absoluto. Por lo tanto, la mejor solución es especificar una etiqueta <! DOCTYPE> en cada página . Si esto requiere validar fragmentos antes de cargar / permitir que los clientes los creen, entonces así sea.
- Android- Cómo establecer 2 xml drawable para LinearLayout
- ¿Cómo puedo habilitar el registro en Chrome android?