【问题标题】:trigger.io - close soft keyboard?trigger.io - 关闭软键盘?
【发布时间】:2013-05-01 15:23:40
【问题描述】:

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

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

【问题讨论】:

  • 尽管我在下面提供了一个解决方案,但我不确定当用户停止输入时隐藏键盘是否良好用户体验。你如何定义这个(例如当用户没有输入 x 秒时)?显示/隐藏键盘可能需要一些时间,您应该确保用户不会在之后输入任何内容。

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


【解决方案1】:

实际上有两种方法可以使用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? 了解更多解决方法。

【讨论】:

  • 我需要一个 JS 解决方案。在输入键后调用时工作得很好。
猜你喜欢
  • 2023-03-07
  • 1970-01-01
  • 1970-01-01
  • 2012-01-21
  • 2013-12-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多