Android WebView no respeta el porcentaje de escala
Tengo un WebView que estoy tratando de tener escala a un cierto porcentaje en la carga de la página. La versión para iPhone de este software utiliza la meta-etiqueta HTML:
<meta name="viewport" content="width=320, initial-scale=0.95, maximum-scale=2.0, user-scalable=1">
Debido a que WebView de Android no parece respetar esa etiqueta, codifiqué el porcentaje con setInitialScale () . Sin embargo, el WebView es simplemente plano ignorando esta llamada de método. No importa qué número puse allí demuestra en el 100%.
- WebView Cargar HTML no funciona
- Cómo deshabilitar el efecto de círculo naranja al hacer clic en un enlace, en un WebView
- Desactivar la barra de direcciones en la vista web de Android
- Android WebView Zoom out limitado
- Android - ¿Cómo puedo adjuntar un WebView a una actividad después de crearlo con el contexto de la aplicación
¿Ideas?
Actualización: No funciona en el emulador, en mi Droid (Motorola), o en mi G1 (HTC).
- Cómo ejecutar cordova plugin en el servicio de fondo de Android?
- Android - ¿Cómo reproducir video de Youtube en WebView?
- Android: ¿Cómo hacer que mi idioma de soporte de webview mientras carga una url?
- Vista web de Android: Mailto no se puede implementar
- URL de la ventana nueva de WebView de Android
- Inyectar JavaScript antes de html cargado con Android WebView
- JavaScript no funciona en Android WebView
- WebView - onReceivedHttpAuthRequest nunca se detiene
Algunos dispositivos HTC tienen problemas con WebView
, prueba este fragmento!
import java.lang.reflect.Method; import java.lang.reflect.InvocationTargetException; myWebView = new WebView(this); myWebView.getSettings().setLoadsImagesAutomatically(true); myWebView.getSettings().setJavaScriptEnabled(true); myWebView.getSettings().setBuiltInZoomControls(true); myWebView.setInitialScale(100); try { Method m = myWebView.getClass().getMethod("setIsCacheDrawBitmap", boolean.class); if (m != null) { m.invoke(myWebView, false); myWebView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); } } catch (NoSuchMethodException e) { } catch (IllegalAccessException e) { } catch (InvocationTargetException e) { } myWebView.loadUrl("http://www.stackoverflow.com");
¿Habilitó el soporte de zoom para su webview?
WebSettings webSettings = mywebView.getSettings(); webSettings.setSupportZoom(true);
El código siguiente me ayudó cuando la mía no estaba respondiendo. Merece un intento:
mywebview.setWebViewClient(new WebViewClient()); mywebview.getSettings().setSupportZoom(true) ; mywebview.getSettings().setUseWideViewPort(true) ; mywebview.setInitialScale(1) ; mywebview.loadUrl(sURL);
¿Qué versión está ejecutando? Parece que 2.0 y abajo tenía un problema con esto pero fue resuelto en el 2.1.
Puede ver varias opciones.
1. Probablemente hay algo mal con tu código. Aquí está el código más simple y puedo decir que funciona para mí. El contenido está escalado.
WebView webview1 = (WebView) findViewById(R.id.webview1); webview1.setInitialScale(30); webview1.loadUrl("http://stackoverflow.com");
Por favor, publica tu código. Todo el código relacionado con la configuración de WebView. Pruebo en el emulador 2.2
2. Probablemente hay algo mal con url que probar. Usted puede probar " http://stackoverflow.com " como prueba con él y se ajusta a la escala.
3. Tal vez usamos diferentes SDKs. ¿Qué SDK construyes contra? Quiero decir cuál es su objetivo en default.properties? ¿Cuál es su uso-sdk en AndroidManifest.xml?
Aquí hay una prueba sencilla que funciona bien para mí http://open-pim.com/tmp/WebViewTest.zip . Usted puede intentarlo también.
La meta
funciona para mí, si separo los parámetros con punto y coma (;) en lugar de comas (,). He utilizado esto en el pasado:
<meta name="viewport" content="initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
Y funciona, al menos en el navegador. No estoy seguro acerca de un WebView
, pero podría valer la pena una oportunidad.
- Vinculación Estática de Android vs Vinculación Dinámica con glibc
- ¿Existen bibliotecas de gestos de código abierto en Android?