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
.
- Administrar dispositivos Android a través del navegador web desde un ordenador portátil mediante WiFI
- Eclipse android phonegap config.xml no funciona?
- JavaScript console.log () en dispositivos HTC Android y adb logcat
- ¿Puedes lanzar la aplicación nativa de la cámara desde una aplicación web Html 5?
- ¿Hay alguna referencia / documentación del navegador de Android?
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.
- Androide WebView alternativa para webapps
- Generar dirección desde Lat / Long en Android o REST
- El banner de instalación de la aplicación no funciona
- Mejor manera de crear un servicio Web en Android
- Detección de servicio en red local mediante WebSockets
- Evitar que el navegador de Android cambie de escala en rotación sin establecer la densidad de destino-dpi en dispositivo-dpi
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:
- 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, - 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:
- 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)
- 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.