2012-01-29 55 views
5

Tengo un problema de escala en una aplicación PhoneGap. Mi problema es muy similar al this question. Quiero permitir el escalado del usuario en mi aplicación y, dado que es todo UIWebView, debería funcionar. He puesto la etiqueta siguiente ventana meta en mis archivos HTML locales y en el sitio remoto que PhoneGap se abre después de la autenticación:Escalar no funciona con PhoneGap en iPad/iOS 5

<meta name="viewport" content="width=device-width; user-scalable=yes; initial-scale=1; maximum-scale=5; minimum-scale=1" /> 

También he editado el PhoneGap.plist y establecer EnableViewportScale a SÍ. Ninguna de estas configuraciones hace ninguna diferencia en absoluto. Simplemente no puedo escalar las páginas cuando se ejecuta en PhoneGap. Nuestros usuarios esperan escalar en la aplicación porque ya están acostumbrados a ejecutarla en el navegador. La aplicación muestra archivos gráficos, PDFS, etc. y necesita permitir escalar.

utilizo jQuery-Mobile en la página local de inicio de sesión, pero una vez dirigido a la aplicación alojada sólo tiene jQuery y el Varios

alguna idea de por qué PhoneGap no está permitiendo que mi aplicación a escala con el pellizco estándar y gesto de zoom?

EDITAR: Bien, actualización de comportamiento extraño. Ahora, la escala funciona y no cambié nada, excepto agregar la funcionalidad ChildBrowser para una parte de la aplicación. Ahora la aplicación puede escalar. Dudo que ChildBrowser realmente tenga algo que ver con eso porque puedo escalar sin usar el complemento ChildBrowser. Que esta pasando? Todavía quiero la respuesta para saber por qué funciona, ya que es muy probable que pierda escalado nuevamente en una actualización futura si no sé por qué esto comenzó a funcionar.

+0

Relacionados: http://developer.apple.com/library/safari/#documentation/appleapplications/reference/SafariHTMLRef/Articles/MetaTags.html –

+0

Bueno, no es de extrañar, el zoom no funciona de nuevo como me temía. Todavía no sé por qué. Todo el meta todavía está allí. – davidethell

Respuesta

2

Cuando estaba probando la escala, ¿limpió el proyecto en cualquier etapa usando cmd + shift + k? Encontrarás que index.html se almacenará en caché en gran medida por Xcode, por lo que cada vez que implementes en el simulador o el dispositivo deberías limpiar el proyecto para asegurarte de que llegue el último html al dispositivo. He pasado horas en problemas inexplicables como este solo para darme cuenta de que solo está funcionando el almacenamiento en caché.

Esto se puede comprobar volviendo a realizar los cambios, quitar la escala, no limpiar e implementar. Ahora comprueba si todavía se escala.

+0

No, no lo hice y ciertamente probaré esto, sin embargo, si mi index.html solo proporciona capacidad de inicio de sesión y luego la vista web se redirige a un sitio externo, ¿el almacenamiento en caché aún se aplicaría? ¿Es el index.html inicial el que establece la escala de toda la aplicación o la meta del sitio externo decide la escala una vez que estoy allí? Lo tengo en ambos lugares. – davidethell

+0

Cualquier documento que se cargue en el momento aplicará la escala. Tiene sentido para mí que si no tienes la metaetiqueta en index.html, entonces no se escale. Pero cuando se dirigía al sitio externo con la metaetiqueta, el escalado surtía efecto. – sciritai

+0

Eso es lo que yo pensaría, pero ese no parece ser el caso. Al principio acabo de agregar el meta al sitio externo sin ningún efecto. Luego lo agregué al index.html local (que realmente no quiero) y que aún no funcionó. Ahora, sin más metacambios, funciona. – davidethell

0

Es posible que necesite agregar compatibilidad con multitáctiles en su vista.

Establezca multipleTouchEnabled en YES en theWebView.

Cuestiones relacionadas