2011-04-03 14 views
11

Me gustaría centrarme en una entrada de texto en una aplicación PhoneGap cuando se carga la página. He probado la versión de MooTools $('entry').focus(); y document.getElementById('entry').focus() cuando el DOM está listo.¿Cómo puedo enfocarme en un campo de entrada cuando se carga una página de phonegap?

Esto funciona bien cuando la página HTML se ve en un navegador web normal, pero en el simulador de iPhone que ejecuta PhoneGap, no funciona.

¿Hay alguna manera de enfocarse en un campo de formulario para iPhones que obligue al teclado virtual a aparecer?

Respuesta

6

Hasta donde yo sé, esta es una limitación intencional de WebKit en iPhone y Android; solo una acción táctil del usuario puede activar un teclado. Todavía estoy tratando de inventar una solución alternativa, pero no soy muy optimista.

+2

¿Pudo encontrar una solución para esto? Todavía no parece ser una solución para eso. – James

+0

@Juegos: Nunca encontré una solución alternativa. Sin embargo, la política se ha invertido en iOS6 para las aplicaciones web de la pantalla de inicio y las UIWebViews configuradas correctamente. Es un buen compromiso, y probablemente lo mejor que podemos esperar. –

+1

Logré hacerlo funcionar escribiendo un plugin PhoneGap personalizado y reemplazando por completo la entrada HTML con un 'UITextView' nativo; no es lo ideal, pero funciona. – James

22

A partir de iOS 6, la clase UIWebView tiene una propiedad llamada "keyboardDisplayRequiresUserAction". Si se desea enfocar mediante programación elementos de formulario de texto, establezca esta falsa a través de su config.xml PhoneGap:

<preference name="KeyboardDisplayRequiresUserAction" value="false" /> 

El valor predeterminado es true.

Más aquí: http://community.phonegap.com/nitobi/topics/calling_focus

+0

Tu respuesta debería estar en la parte superior, ¡gracias amigo! Funcionó bastante bien. –

Cuestiones relacionadas