Принудительная клавиатура открыта на Android

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

В проекте я пытаюсь получить текстовый ввод, но после отправки (перехват 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 также интересен, но еще не проверен.

Ответ 1

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 на клавиатуре, я не знаю ни одного решения, которое могло бы решить эту проблему.