javascript - "showkeyboard"事件来自哪里?

标签 javascript android events cordova

我正在使用 PhoneGap,我需要在 Android 手机上捕捉“键盘正在显示”事件。

我发现一些帖子说要使用“showkeyboard”事件。 (例如这个:Show hide keyboard is not working propery in android phonegap)

我的问题:这是一个可与 phonegap 一起使用的 android 事件吗?这是一个简单的 phonegap 事件吗?这是浏览器事件吗?这是经典的 JavaScript 事件吗?

我找不到关于此事件的任何文档,我需要它,因为它也会在方向更改时触发...

编辑:我发现了这个,说它来自 android 但没有记录:https://issues.apache.org/jira/browse/CB-6154

最佳答案

这些事件来自 Android未记录。我在这方面遇到了一些麻烦,所以我建议不要使用它们。

供引用,为了使我的功能正常工作,我做了这样的事情(这只是一般的想法):

this._keyboardTimer;

document.addEventListener('showkeyboard', function (e) {
    clearTimeout(this._keyboardTimer); // keep only the last event
    this._keyboardTimer = setTimeout(function(oldOrientation){
        if (oldOrientation != getOrientation()) { 
            /* this is an orientation event */
        } else { 
            /* keyboard is really opening */
        }
    }.bind(this, getOrientation()), 200);
}.bind(this), false);

function getOrientation() {
    return ( (window.orientation == 90) || (window.orientation == -90) ) 
            ? 'landscape' 
            : 'portrait';
};

我对“隐藏键盘”事件也做了同样的事情。希望这会有所帮助。

[编辑] 还有另一个问题(哎呀!):键盘可能略有不同。如果键盘变小:触发 'hidekeyboard' 事件....

关于javascript - "showkeyboard"事件来自哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23873256/

相关文章:

java - 不要将工具栏连接到抽屉导航怎么办?

javascript - 单击内部元素时停止执行容器 div 中的 onClick 函数

javascript - 多次单击元素后未触发鼠标事件

javascript - 如何在 WebRTC 通话期间锁定视频大小?

javascript - 使用javascript删除表格行

javascript - 同时向下滚动一个 div 和向上滚动一个?

javascript - 在 Javascript 中,如何判断用户是否同时按下两个键?

javascript - MomentJS 没有正确转换日期

java - com.android.build.transform.api.TransformException

java - 在空字符串输入上停用警报对话框肯定按钮