trigger.io - 关闭软键盘?

时间:2013-05-01 15:23:41

标签: javascript android android-webview android-softkeyboard trigger.io

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

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

1 个答案:

答案 0 :(得分:7)

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

原生插件

您可以编写隐藏软键盘的native plugin。相关代码应如下所示(基于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设备也不起作用。查看How can I hide the Android keyboard using JavaScript?了解更多变通方法。