Habilitar el pinch-zoom de viewport en Phonegap La aplicación de Android no tiene efecto

Necesito poder activar y desactivar el pinch-zoom con la configuración de la ventana de visualización de mi aplicación Android PhoneGap.

Pero no puedo conseguir que la ventana de visualización afecte al pinch-zoom cuando utilice PhoneGap. No puedo activar Pinch-zoom en PhoneGap, pero al navegar con el navegador Android Native a la página web todo funciona bien.

He pasado mucho tiempo buscando una solución, sin ningún resultado.

Creé un index.html muy simple para la prueba, teniendo la configuración de la visión como:

<meta name="viewport" content="user-scalable=yes" /> 

Como algunos han sugerido también he probado el viewport:

 <meta name="viewport" content="user-scalable=1" /> 

Otras soluciones para Android PhoneGap sería para habilitar Android Native Pinch-Zoom que se han sugerido aquí: zoom en phonegap para Android Pero esto no funcionará para mí, ya que tengo que ser capaz de controlar el pinch-zoom de javascript. Es decir, necesito poder usar javascript para cambiar la configuración de la ventana de visualización, para controlar cuándo está disponible el pinch-zoom (escalable al usuario = yes / user-scalable = no)

Observe que otras configuraciones de viewport como "inicial-scale" y "target-densitydpi" parecen funcionar bien. Por ejemplo setting initial-scale = 2 inicia la aplicación ampliada.

(Actualmente estoy probando pinch-zoom en PhoneGap 1.4.1 y HTC Desire HD Android 2.3.3)

Estoy empezando a pensar que he perdido algo obvio, ya que encuentro tan poca información sobre problemas similares …

El índice mínimo.html:

 <!DOCTYPE HTML> <html> <head> <meta name="viewport" content="user-scalable=yes" /> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Minimal AppLaud App</title> <script type="text/javascript" charset="utf-8" src="phonegap-1.4.1.js"></script> <script type="text/javascript" charset="utf-8"> var onDeviceReady = function() { document.getElementById("devready").innerHTML = "OnDeviceReady fired."; }; function init() { document.addEventListener("deviceready", onDeviceReady, true); } </script> </head> <body onload="init();" id="stage" class="theme"> <h2>Minimal AppLaud App</h2> <p> LOTS OF TEXT WHICH HAVE BEEN REMOVED HERE </p> <p><span id="devready">onDeviceReady not fired.</span></p> </body> </html> 

Apreciar cualquier idea que pueda tener!

Tengo exactamente el mismo problema y además de probar diferentes ajustes de visualización, he probado las sugerencias de este: Pinch Zoom en Android con Phonegap y jQUERY Mobile, pero no puedo hacerlo funcionar (pruebas en Samsung Galaxy SII, Android 4.0.3) . Sin embargo, otros han informado con éxito pinch-zoom utilizando los consejos del enlace. Espero que te ayude también!

¿Está utilizando PhoneGap Build? No es posible con PhoneGap Build.

Con Desktop PhoneGap, si aún no lo ha hecho, siga la Guía de inicio de PhoneGap para Android y configure su código en un proyecto Eclipse.

Una vez configurado, edite el archivo Java principal, como en la guía de introducción: Agregue las siguientes importaciones:

 import android.webkit.WebSettings; import android.webkit.WebSettings.ZoomDensity; 

Debajo del 'super.loadUrl ("file: ///android_asset/www/index.html");' línea que pones, como parte de la guía de inicio, agrega:

 settings.setBuiltInZoomControls(true); settings.setSupportZoom(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); 

Limpiar y construir su proyecto – zoom ahora debe ser permitido.

Para restringir hasta qué punto los usuarios pueden acercarse, agregue una metaetiqueta, como la que aparece a continuación en cada página HTML:

 <meta name="viewport" content="width=device-width, height=device-height, initial-scale=1, minimum-scale=1, maximum-scale=1.5, user-scalable=1"> 

Sólo confirmó pinch zoom como trabajar en los siguientes teléfonos Android:

  • Samsung Galaxy S820L Android 4.4

  • LG Sunset L33L Android 5.0

Con PhoneGap CLI (no el servicio), en Windows:

 C:\>phonegap --version 5.4.1 

Herramientas para Android SDK Verion:

 24.4.1 (from the SDK Manager) 

Aquí está el código para MainActivity.java (plataformas \ android \ src \ com \ phonegap \ helloworld):

 package com.phonegap.helloworld; import android.os.Bundle; import org.apache.cordova.*; import android.webkit.WebView; import android.webkit.WebSettings; public class MainActivity extends CordovaActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set by <content src="index.html" /> in config.xml loadUrl(launchUrl); WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM); settings.setSupportZoom(true); } } 

Y esto está en index.html:

  <meta name="viewport" content="user-scalable=yes, initial-scale=1, maximum-scale=3, minimum-scale=1, width=device-width, height=device-height, target-densitydpi=device-dpi" /> 

Una nota adicional – con esta llamada:

 settings.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM); 

conseguido esto al construir:

 uses or overrides a deprecated API - Note: Recompile with -Xlint:deprecation for details 

Lo comentó y Zoom no se vio afectado.

Gracias chicos !!!

Quienquiera después de esto no encontró una solución para esto, encontré una respuesta que fue contestada el 17 de noviembre de 2015.

Solución de problemas aquí

 import android.webkit.WebView; 

 // super.appView.getSettings().setBuiltInZoomControls(true); // super.appView.getSettings().setDefaultZoom(ZoomDensity.MEDIUM); // super.appView.getSettings().setSupportZoom(true); // Instead use this WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); settings.setSupportZoom(true); 

Esto funcionó para mí.

Fuente: https://github.com/LouisT/cordova-useragent/issues/1

Para cordoba 5.xx necesitas usar la solución de https://github.com/LouisT/cordova-useragent/issues/1

 import android.webkit.WebView; WebView webView = (WebView) appView.getEngine().getView(); WebSettings settings = webView.getSettings(); settings.setBuiltInZoomControls(true); settings.setDefaultZoom(ZoomDensity.MEDIUM); settings.setSupportZoom(true); 

Para mí, fue necesario cambiar ZoomDensity.MEDIUM a WebSettings.ZoomDensity.MEDIUM

El documento html5 debe comenzar con:

 <!DOCTYPE html> 

Sin esta línea no funcionó el visor AppBrowser en Phonegap Android

  • Leer archivo local en Phonegap
  • No se puede agregar cruce con cli iónico 1.3.2
  • Cómo utilizar la fuente dinámica en el cuadro combinado de jquery en una aplicación de Android con phonegap
  • Ionic - 'platform add android' El comando falló con el código de salida ENOENT
  • Firmar archivo APK en Cordova v-5.0 CLI no funciona
  • Phonegap: La fuente personalizada no funciona
  • Android objetivo se cambia después de hacer cordova plataforma de actualización
  • La aplicación Android PhoneGap no clasifica el contenido de forma equivalente a la página de Chrome / navegador
  • Phonegap construir versión de lanzamiento localmente (sin Phonegap Build)
  • `$ Cookies.put ()` tarda 30 segundos para guardar la cookie en disco en Android
  • Error no detectado: INVALID_STATE_ERR: excepción DOM 11
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.