WebView en Android 4.4 y escala inicial

He estado golpeando mi cabeza contra la pared durante todo el día, y necesito ayuda 🙁

El problema es que tengo un WebApp que fue diseñado para 640x960 .

No tuvimos tiempo de escribir css para cada tamaño de pantalla, por lo que he utilizado initial-scale, maximum-scale, minimum-scale en la metaetiqueta viewport para escalar la aplicación a diferentes tamaños de pantalla.

El problema es que en Android 4.4 , no importa lo que hago, siempre escalas de la aplicación, pero nunca hacia abajo!

Quiero decir, si uso un valor de 0.7 , la aplicación se amplía. Si utilizo un valor de 1.3 , se amplía de nuevo: /

He intentado cambiar el targetSdkVersion a diversas versiones para conseguir el viejo comportamiento, pero sin la suerte.

¿Alguien me puede ayudar?

UPDATE: Así que terminé usando style="zoom: <value>%" en la etiqueta de body . Calculo el porcentaje basado en la diferencia entre el tamaño de pantalla actual del dispositivo y la resolución para la que mi aplicación fue diseñada. Ahora todo encaja.

Una ventana de

 <meta name="viewport" content="width=640, initial-scale=1"> 

debe hacer su disposición fija siempre encajan (vea MDN para más información sobre la metaetiqueta de viewport).

Usted podría estar tocando en algunos de los siguientes:

  • el contenido no puede ser reducido más de "escala de resumen" (es decir, que su contenido es más estrecho que la pantalla). Esto es por el diseño – que lo hace más pequeño sólo los resultados en la prestación de blanco a los lados por lo que molestar. Si desea que este comportamiento que necesita para agregar relleno al contenido,
  • usted ha especificado la altura de la disposición del WebView para ser WRAP_CONTENT – esto hace que el WebView no hace caso a la metaetiqueta de la ventana de visualización, no hace eso – la fija a MATCH_PARENT oa un tamaño fijo,
  • está utilizando ciertos WebSettings :
    • setUseWideViewport (que reemplaza a la metaetiqueta de vista) o
    • setInitialScale (que puede alterar el tamaño de la ventana gráfica).

La mejor manera de comprobar si es culpa del contenido o de WebView es averiguar si la página funciona en Chrome en Android:

  1. si funciona en Chrome en Android, pero no en WebView, establezca targetSdkVersion en 19 e intente deshabilitar WebSettings, cambie su diseño a tamaño fijo, etc. para ver qué está causando el problema. Tal vez comenzar desde el otro extremo – al hacer una aplicación WebView super trivial que sólo carga la página – confirmar que funciona y, a continuación, introducir lentamente los cambios para ver cuál causa el problema,
  2. si no funciona en Chrome en Android, entonces el problema es la diferencia en la compatibilidad con la etiqueta meta de viewport entre pre-KK WebView y Chrome en Android – esto significa que tendrá que arreglar su contenido,

Si todavía estás atascado publicar un zip que contiene fuentes con un repro (no tiene que ser la aplicación completa, sólo el mínimo para demostrar el problema) y puedo tratar de ayudarle más desde allí.

Acabo de tener una carrera a través de este después de no estar completamente seguro de la respuesta a mí mismo.

http://www.gauntface.co.uk/blog/2013/11/29/desktop-site-and-the-viewport/

Desea una ventana sin una escala inicial si sólo desea que la página web se ajuste al ancho de WebView.

Cosas que afectarán al WebView:

  1. Asegúrese de que tiene setUseWideViewport () habilitado para que la página pueda ser mayor que el ancho de los dispositivos: http://developer.android.com/reference/android/webkit/WebSettings.html#setUseWideViewPort(boolean)
  2. Asegúrese de que targetSDKVersion = 19 para asegurarse de que no está recibiendo ninguna compatibilidad para la antigua webview

Si desea evitar que el usuario realice un acercamiento o una ampliación, utilice user-scalable = no en la ventana gráfica en lugar de establecer un min y un máximo.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.