2012-03-14 11 views
14

¿Alguien sabe cómo forzar el teclado abierto en el navegador de Android (4.0 - tal vez menos)? intenté this solution y no funcionó para mí.teclado de fuerza abierto en android

en el proyecto estoy tratando de obtener una entrada de texto en funcionamiento, pero después de enviar (interceptar por jQuery) mantiene el foco pero el teclado desaparece.

fragmentos:

$('#typer').blur(function() { 
    $(this).focus().click(); 
}); 

$('#typer').bind('keyup', function (e) { 
    var input = $.trim($(this).val()); 
    // some lines of code.. 
    $(this).val('').focus(); // clean up 
} 

iOS también es interesante .. pero no determinado todavía.

+0

No está muy claro, lo que está tratando de lograr. Esto funciona: http://jsfiddle.net/Exceeder/Z6SFH/ (Creé un violín para seguir tu problema) y el teclado no desaparece. Pero el teclado suave es quisquilloso sobre el estado y el estilo en que está #typer. ¿Desea que el teclado permanezca en la pantalla sin importar lo que toque el usuario con el dedo? –

+1

el problema es que el teclado desaparece después de enviarlo. lo mismo que en tu ejemplo. Sucede después de presionar "Ir". ¿Alguna idea? – mrzmyr

+0

Ah. El botón "Ir" ... vea esto: http://stackoverflow.com/questions/6545086/html-why-does-android-browser-show-go-instead-of-next-in-keyboard –

Respuesta

6

Android levanta el teclado cuando el campo de entrada de texto está enfocado. El botón "Ir" o "Listo" en Android funciona como envío de formulario, por lo tanto, el texto de entrada pierde foco y el teclado desaparece. El usuario espera que el teclado desaparezca después de presionar "Ir", "Hecho" o "Entrar", por lo que Android sigue esta regla. Forzar el reenfoque en el desenfoque del campo no hará mucho, ya que técnicamente se movió a una ventana diferente.

$('body').click(function() { $('#typer').focus(); } 

puede proporcionar una solución parcial, mediante el cual el usuario tiene que hacer clic una vez en cualquier parte del cuerpo de la página para la typer para volver a tener el foco. Hace que el sistema operativo vuelva a la Actividad del navegador y enfoque el campo de entrada. Este violín lo muestra como un ejemplo: http://jsfiddle.net/Exceeder/Z6SFH/ (http://jsfiddle.net/Exceeder/Z6SFH/embedded/result/ uso en el dispositivo Android)

Aparte de escribir un envoltorio PhoneGap similar para controlar imeOptions del teclado, no estoy al tanto de cualquier solución que pueda resolver este problema.

+0

gracias alex, Ya hago la solución con el clic en el documento. es triste que no haya una buena API para eso. '$ (document) .click (function() {$ ('# typer'). focus();})' – mrzmyr

+0

Chicos, vamos a publicar nuevos problemas en el rastreador de errores de Chromium para esto. Es la única forma de hacerlo realidad. Publiqué el mío aquí: https://code.google.com/p/chromium/issues/detail?id=435871&thanks=435871&ts=1416704707 Solo pretendo que no vio mi problema y publico un duplicado para que vean la necesidad de esto Más. – trusktr

Cuestiones relacionadas