2012-03-14 3 views
14

Кто-нибудь знает, как заставить клавиатуру открывать браузер в Android (4.0 - возможно, меньше)? Я пробовал this solution, и это не сработало для меня.force keyboard open on android

в проекте Я пытаюсь получить ввод текста, но после отправки (перехват jQuery) он держит фокус, но клавиатура исчезает.

сниппеты:

$('#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 также интересно .. но пока не тестировалась.

+0

Не совсем понятно, чего вы пытаетесь достичь. Это работает: http://jsfiddle.net/Exceeder/Z6SFH/ (я создал скрипку, чтобы следить за вашей проблемой), и клавиатура не исчезает. Но мягкая клавиатура придирчива к тому, в каком состоянии и стиле ваш #typer. Вы хотите, чтобы клавиатура оставалась на экране независимо от того, какой пользователь коснулся пальцем? –

+1

проблема в том, что клавиатура исчезает после отправки. так же, как в вашем примере. Это происходит после нажатия «Go». Есть идеи? – mrzmyr

+0

Ах. Кнопка «Перейти» ... см. Это: http://stackoverflow.com/questions/6545086/html-why-does-android-browser-show-go-instead-of-next-in-keyboard –

ответ

6

Android подтягивает мягкую клавиатуру, когда текстовое поле ввода находится в фокусе. Кнопка «Go» или «Done» на Android работает в форме submit, поэтому входной текст теряет фокус и клавиатура исчезает. Пользователь ожидает, что клавиатура исчезнет после нажатия «Go», «Done» или «Enter», поэтому Android следует этому правилу. Принуждение к повторному фокусу при размывании поля не будет делать многого, поскольку с технической точки зрения вы переместились в другое окно.

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

может обеспечить частичное решение, при котором пользователь должен щелкнуть один раз в любом месте в теле страницы для typer, чтобы вновь получить фокус. Это заставляет ОС возвращаться к активности браузера и фокусировать поле ввода. Эта скрипка показывает, как пример: http://jsfiddle.net/Exceeder/Z6SFH/ (использование http://jsfiddle.net/Exceeder/Z6SFH/embedded/result/ на вашем Android устройства)

Другие, чем писать PhoneGap подобную оболочку для управления imeOptions на клавиатуре, я не знаю ни одного решения, которое может решить эту проблему.

+0

спасибо alex, Я уже делаю обходной путь с щелчком по документу. его грустно, что для этого нет хорошего api. '$ (document) .click (function() {$ ('# typer'). focus();})' – mrzmyr

+0

Ребята, размещайте новые выпуски на трекере Chromium для этого. Это единственный способ добиться этого. Я разместил здесь свой адрес: https://code.google.com/p/chromium/issues/detail?id=435871&thanks=435871&ts=1416704707 Просто притворись, что ты не видел мою проблему и размещал дубликат, чтобы они увидели необходимость этого Больше. – trusktr