trigger.io - закрыть программную клавиатуру?
Есть ли способ программно закрыть Android на экранной клавиатуре с помощью trigger.io?
У меня есть поле поиска с автозаполнением поиска. Когда пользователь перестает набирать текст, я показываю результаты поиска, но экранная клавиатура остается видимой, скрывая некоторые результаты.
1 ответ
На самом деле есть два способа сделать это с помощью Trigger.io
:
Родной плагин
Вы можете написать собственный плагин, который скрывает программную клавиатуру. Соответствующий код должен выглядеть примерно так (на основе " Закрыть / скрыть программную клавиатуру Android"):
InputMethodManager inputMethodManager = (InputMethodManager) ForgeApp.getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(ForgeApp.getActivity().getCurrentFocus().getWindowToken(), 0);
Javascript
Правильный способ скрыть программную клавиатуру с использованием Javascript - размыть элемент, который в данный момент находится в фокусе. В современных браузерах вам просто нужно позвонить:
document.activeElement.blur()
Тем не мение, document.activeElement
не всегда доступен и иногда кажется неправильным. Я использую что-то вроде этого:
if (document.activeElement &&
document.activeElement.blur &&
document.activeElement !== document.body) {
document.activeElement.blur();
}
else {
jQuery(':focus').blur();
}
Даже это не будет работать для некоторых устройств Android 2.x. Проверьте, как я могу скрыть клавиатуру Android, используя JavaScript? для более обходных путей.