我正在开发一个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
答案 0 :(得分:2)
您应该像对window
事件所做的那样,将您的听众注册到'native.keyboardhide'
对象:
window.addEventListener('native.keyboardshow', keyboardShowHandler);
function keyboardShowHandler(e){
alert("keyboard open"); //This never fires!
$cordovaKeyboard.disableScroll(true);
}