在phonegap应用程序中打开软键盘时是否会触发Javascript事件?

在phonegap应用程序中打开软键盘时是否会触发Javascript事件?,javascript,cordova,dom-events,android-softkeyboard,Javascript,Cordova,Dom Events,Android Softkeyboard,使用PGB,我的Javascript应用程序可以知道键盘何时打开吗 我有一个页面,页面垂直中间下方有一个文本框。 当用户将焦点设置到该文本框中时,键盘将打开并覆盖文本框中除最上面的2或3个像素外的所有像素 如果我能知道键盘什么时候打开,什么元素有焦点,我可能可以手动滚动一些…我不确定phonegap,但我在Android的webapp中遇到了类似的问题 当虚拟键盘打开时(在Android设备上),将调用窗口.onresize事件。您可以在应用程序启动时存储视口的原始高度,以便稍后知道虚拟键盘是打

使用PGB,我的Javascript应用程序可以知道键盘何时打开吗

我有一个页面,页面垂直中间下方有一个文本框。 当用户将焦点设置到该文本框中时,键盘将打开并覆盖文本框中除最上面的2或3个像素外的所有像素


如果我能知道键盘什么时候打开,什么元素有焦点,我可能可以手动滚动一些…

我不确定phonegap,但我在Android的webapp中遇到了类似的问题

当虚拟键盘打开时(在Android设备上),将调用
窗口.onresize
事件。您可以在应用程序启动时存储视口的原始高度,以便稍后知道虚拟键盘是打开还是关闭的(基于视口的当前高度)


无论如何,由于您在输入元素上有问题,您也可以使用
onfocus
onblur
事件进行处理。

在PhoneGap中获得onDeviceReady后,请尝试:

document.addEventListener("hidekeyboard", keyboardHide, false);
document.addEventListener("showkeyboard", keyboardShow, false);
您可能还需要:

<plugin name="SoftKeyBoard" value="org.apache.cordova.plugins.SoftKeyBoard" />


在您的res/xml/plugins.xml Android项目文件中。

您还需要确保您的Android清单中包含:

android:windowSoftInputMode="adjustResize"
在节点中


本质上,正如w4rumy提到的,这将基本上触发窗口。onresize事件

我的回答对您有帮助吗,或者您有什么问题吗?谢谢,这听起来是个好主意,但是这意味着我不能使用电话间隔构建。(至少在他们为插件添加一些通用支持之前)。如果在将来的某个时候,PGB将添加通用插件支持,那么这个Q可能有资格被接受,而不是我刚刚接受的那个。我有点错过了你的答案,我道歉。这听起来是个好主意,我以后可能会尝试使用它。我将创建一些类来跟踪所有调整大小事件(记住看到的最大大小),并尝试根据当前大小与最大大小之间的差异推断当前情况。因为我使用的是phone gap build,而不是PhoneGap直接-我无法控制此menifest AFAIK。我可能需要测试我是否得到resizeEvent,是否以及何时决定使用它。谢谢你的评论。