Пост rdougan не работал для меня, но это было хорошей отправной точкой для моего решения.
function androidSoftKeyHideFix(selectorName){
$(selectorName).on('focus', function (event) {
$(selectorName).off('focus')
$('body').on('touchend', function (event) {
$('body').off('touchend')
$('.blurBox').focus();
setTimeout(function() {
$('.blurBox').blur();
$('.blurBox').focus();
$('.blurBox').blur();
androidSoftKeyHideFix(selectorName);
},1)
});
});
}
Вам нужен элемент ввода в верхней части тела, который я классифицировал как 'blurBox'.Не должно отображаться: нет.Так что дайте ему непрозрачность: 0 и положение: абсолютное.Я попытался поместить его в нижней части тела, и это не сработало.
Я счел необходимым повторить последовательность .focus () .blur () на blurBox.Я попробовал это без, и это не работает.
Это работает на моем 2.3 Android.Я предполагаю, что у пользовательских приложений клавиатуры все еще могут быть проблемы.
Я столкнулся с рядом проблем, прежде чем прийти к этому.Возникла странная проблема с последующими фокусировками, вызывающими размытие / фокусировку, что выглядело как ошибка андроида.Я использовал слушателя касания вместо слушателя размытия, чтобы обойти функцию возобновления закрытия клавиатуры сразу после не начального открытия.У меня также была проблема с набором текста клавиатуры, заставляющим скролл прыгать вокруг ... который реализуется в виде трехмерного преобразования, используемого на родительском элементе.Это произошло из-за попытки обойти проблему размывания с размытием, когда я не размыл в конце blurBox.Так что это деликатное решение.