有没有办法用trigger.io以编程方式关闭Android屏幕键盘?
我有一个自动完成搜索的搜索字段。当用户停止输入时,我会显示搜索结果,但屏幕键盘仍然可见 - 模糊了许多结果。
答案 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?了解更多变通方法。