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? для более обходных путей.

Другие вопросы по тегам