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%.

¿Ideas?

Actualización: No funciona en el emulador, en mi Droid (Motorola), o en mi G1 (HTC).

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.

  • Cómo detectar scrollend de webview en android?
  • Cómo configurar url en WebView desde un archivo de diseño xml en Android?
  • Android webview parpadea una vez al cargar datos
  • Forzar la visualización web para mostrar los sitios de escritorio
  • La mejor manera de interceptar una solicitud de WebView en Android
  • Funciones de JavaScript de Android Calling en WebView
  • Auto clic en WebView
  • ¿Cómo forzar a WebView a saltar imágenes?
  • Android WebView app fallando en el emulador: null Contexto de la aplicación?
  • Forzar la versión móvil del sitio web para WebView
  • Cómo cargar un archivo js de los elementos en la vista web después de cargar html
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.