Cordova键盘插件native.keyboardopen事件未被触发。如何在键盘打开时停止滚动

时间:2016-07-07 14:41:08

标签: javascript angularjs cordova ionic-framework ngcordova

我正在开发一个cordova / angular混合应用程序。我正在尝试禁用用户在键盘打开时滚动的功能。

离子ionic-plugin-keyboard的cordova键盘插件提供两个事件,一个用于键盘打开,另一个用于关闭时。 键盘关闭时的事件不会触发

在角度运行脚本(app.run(function ...)中,我有以下代码段:

document.addEventListener('native.keyboardshow', keyboardShowHandler);

function keyboardShowHandler(e){
    alert("keyboard open"); //This never fires!
    $cordovaKeyboard.disableScroll(true);
}

window.addEventListener('native.keyboardhide', keyboardHideHandler);

function keyboardHideHandler(e){
    alert("keyboard closed"); //This fires as expected.
    $cordovaKeyboard.disableScroll(false);
}

'native.keyboardshow'的事件处理程序永远不会触发,'native.keyboardhide'事件会按预期一致触发。

经过一些谷歌搜索后,我遇到一个帖子说应用程序无法在全屏模式下运行。我在confix.xml中添加了以下内容:

<preference name="Fullscreen" value="false" />

我相信这是默认值,它没有区别,也没有将值设置为true。

有没有人碰到过这个?我正在使用Cordova 6.0.0

1 个答案:

答案 0 :(得分:2)

您应该像对window事件所做的那样,将您的听众注册到'native.keyboardhide'对象:

window.addEventListener('native.keyboardshow', keyboardShowHandler);

function keyboardShowHandler(e){
    alert("keyboard open"); //This never fires!
    $cordovaKeyboard.disableScroll(true);
}