trigger.io - 关闭软键盘?

Mei*_*ion 2 javascript android android-webview android-softkeyboard trigger.io

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

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

Pat*_*lph 7

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

原生插件

您可以编写隐藏软键盘的本机插件.相关代码应如下所示(基于关闭/隐藏Android软键盘):

InputMethodManager inputMethodManager = (InputMethodManager) ForgeApp.getActivity().getSystemService(Activity.INPUT_METHOD_SERVICE);
inputMethodManager.hideSoftInputFromWindow(ForgeApp.getActivity().getCurrentFocus().getWindowToken(), 0);
Run Code Online (Sandbox Code Playgroud)

使用Javascript

使用Javascript隐藏软键盘的正确方法是模糊当前关注的元素.在现代浏览器中,您只需要调用:

document.activeElement.blur()
Run Code Online (Sandbox Code Playgroud)

但是,document.activeElement并不总是可用,有时似乎是不正确的.我使用这样的东西:

if (document.activeElement && 
    document.activeElement.blur && 
    document.activeElement !== document.body) {
  document.activeElement.blur();
}
else {
  jQuery(':focus').blur();
}
Run Code Online (Sandbox Code Playgroud)

即使这样也不适用于某些 Android 2.x设备.查看如何使用JavaScript隐藏Android键盘?了解更多变通方法.