如何使用javascript检测android设备中的键盘关闭事件

Posted

技术标签:

【中文标题】如何使用javascript检测android设备中的键盘关闭事件【英文标题】:How to detect keyboard close event in android device with javascript 【发布时间】:2012-06-16 05:09:30 【问题描述】:

我正在使用 phonegap 开发 android 应用程序。目前我正面临一个与特定 HTC Android 设备有关的inputbox 问题,我有一个解决方案。但我需要知道键盘关闭事件何时发生

所以我的问题是如何使用 phonegap 检测键盘关闭事件 或任何可用于检测 android 设备键盘事件的插件。?

请帮忙。提前致谢。

【问题讨论】:

How to listen for keyboard open/close in javascript/Sencha?的可能重复 @Derek 我已经为此使用了焦点/模糊事件,但仍然无法使用我提到的特定 HTC 设备。 试试this。 我已经为文本框实现了蓝色事件,但是在尝试关闭键盘时没有触发模糊事件。 有道理,通常关闭键盘时文本字段不会模糊。 【参考方案1】:

我不使用 Phonegap,但我做了一些基本的 Google 搜索,例如“phonegap android hide keyboard event”,并在几个月前发现了这两个相关的帖子。

第一个就在这里:Android SoftKeyboardDetect: Ignore this event what does it mean?。看起来如果您下拉到“本机”Java(...) Android 会尝试使其可用。

另外一个,Re: [PhoneGap] Re: SoftKeyboardDetect(328): Ignore 在一个以 phonegap 为导向的网站上似乎表明 phonegap 实现或 SoftKeyboardDetect 代码是罪魁祸首。

我有用 Java 编写的 Android 代码,它工作得很好。

【讨论】:

【参考方案2】:

我在使用 phonegap 开发 iPhone 应用程序时遇到了类似的问题。我已经通过以下方式解决了这个问题。

$("input[type=text], textarea").
bind("blur", function(e) 
 window.scrollTo(0.0);
 loaded();
);

您可以使用“模糊”操作检测关闭事件。

【讨论】:

如果您引用了解决方案的外部链接,请在您的答案中添加解决方案。这样,如果引用的网站应该离线,解决方案仍然存在。功劳仍然归功于原始解决方案。没有什么比在阅读“我在这里找到了解决您的问题的完美解决方案:”之后发现死链接更令人沮丧的了。 最大的问题是绑定函数中的内容在键盘关闭之前执行(至少可以在 ios 7 上重现)【参考方案3】:

我用:

 inputElement.bind("closeKeyboard", function() 
             //do something
 );

【讨论】:

以上是关于如何使用javascript检测android设备中的键盘关闭事件的主要内容,如果未能解决你的问题,请参考以下文章

通过 Javascript / jQuery 检测 Android 手机

使用 Javascript 检测触摸屏设备

使用 Javascript 检测抖动事件,适用于所有主要浏览器/设备(iOS、Android)

如何使用javascript检测浏览器中的手机事件?

使用 JavaScript 和 Razor 检测移动设备

网页设计中如何javascript检测用户设备是电脑或者平板或者手机?