2

有没有办法使用 trigger.io 以编程方式关闭 Android 屏幕键盘?

我有一个带有自动完成搜索的搜索字段。当用户停止输入时,我会显示搜索结果,但屏幕键盘仍然可见 - 掩盖了许多结果。

4

1 回答 1

7

实际上有两种方法可以使用Trigger.io

原生插件

您可以编写一个隐藏软键盘的本机插件。相关代码应如下所示(基于Close/hide the Android Soft Keyboard):

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 设备。查看如何使用 JavaScript 隐藏 Android 键盘?更多解决方法。

于 2013-05-01T19:23:45.370 回答