Cordova“hidekeyboard”事件在 Cordova 5.0 中不起作用

Posted

技术标签:

【中文标题】Cordova“hidekeyboard”事件在 Cordova 5.0 中不起作用【英文标题】:Cordova "hidekeyboard" event not working in Cordova 5.0 【发布时间】:2015-05-22 11:50:07 【问题描述】:

我添加了事件“hidekeyboard”如下。

document.addEventListener("hidekeyboard", function () 
        alert("keyboard hidden");
, false);

当我们在移动设备上隐藏软键盘时应该会触发。通常,当我们聚焦输入元素时,软键盘会出现并触发 "showkeyboard" 事件。此外,当键盘隐藏 "hidekeyboard" 事件被触发。之前我使用 cordova 4.0 时它可以工作,但现在我 将 cordova 更新到 5.0,现在它无法工作。

【问题讨论】:

没有这样的events 在cordova 中构建它,除非你安装了这样的插件github.com/driftyco/ionic-plugin-keyboard。如果是这种情况,那么该插件可能还不兼容cordova 5。 我记得我没有添加任何插件。我只是在谷歌上搜索并添加了它。它在科尔多瓦 4.0 中工作,但更新后它无法工作。 这是真的 murli,我也面临同样的问题,但还没有得到解决方案。 别忘了这仅适用于 ios。但是安卓呢? 【参考方案1】:

在 Cordova android 4.0.0 发布后,“hidekeyboard”和“showkeyboard”事件已被删除。您应该改用插件。 你可以确认这个here (https://cordova.apache.org/announcements/2015/04/15/cordova-android-4.0.0.html),看看“其他变化”部分。 如果可能的话,您可以使用下面的脚本,因为在显示或隐藏键盘时会调用“调整窗口大小”事件。

window.onresize = function()
  if($('.footer').css('position') == 'fixed')
	$('.footTab').css('position','relative');
  else
	$('.footer').css('position','fixed');
;

【讨论】:

【参考方案2】:
document.addEventListener("deviceready",onDeviceReady,false);

function onDeviceReady () 
    document.addEventListener("hidekeyboard", onHide, false);
    document.addEventListener("showkeyboard", onShow, false);


function onHide() 

    alert("hide");


function onShow() 

    alert("show");

尝试在平台就绪或文档就绪中添加侦听器。

问候。

【讨论】:

以上是关于Cordova“hidekeyboard”事件在 Cordova 5.0 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Appium hidekeyboard() 方法

text HideKeyboard

如何在下面给出的Hidekeyboard函数中包含多个UITextField?

Cordova:在后台运行应用程序时的事件

在 Cordova 3.2.0 中未触发 deviceready 事件

当应用程序在 Cordova 中退出时会发生啥事件?