当光标聚焦在一个字段上时,Phonegap后退按钮不起作用

时间:2013-05-13 05:57:09

标签: javascript android cordova

我在我的应用程序javascript上覆盖了backbutton事件:

document.addEventListener("backbutton", function (e) {
    e.preventDefault();
    navigator.app.backHistory();
}, false);

如果光标没有聚焦在webview(CordovaWebView)上存在的任何元素上,按下后退按钮就可以了,在我的情况下它会回到之前的Activity。

但是,如果光标聚焦在字段表单上,例如输入字段或按钮,后退按钮不起作用或只是隐藏键盘。当我按下后退按钮时,logcat只显示这个。

05-13 12:47:41.463: D/CordovaWebView(14396): The current URL is: file:///android_asset/www/login.html#register
05-13 12:47:41.463: D/CordovaWebView(14396): The URL at item 0 is:file:///android_asset/www/login.html#register
05-13 12:47:41.663: D/CordovaWebView(14396): The current URL is: file:///android_asset/www/login.html#register
05-13 12:47:41.663: D/CordovaWebView(14396): The URL at item 0 is:file:///android_asset/www/login.html#register
05-13 12:47:42.203: D/CordovaWebView(14396): The current URL is: file:///android_asset/www/login.html#register
05-13 12:47:42.203: D/CordovaWebView(14396): The URL at item 0 is:file:///android_asset/www/login.html#register

我已经尝试覆盖DroidGap扩展上的onBackPressed,但却使其无法正常工作。

修改

我忘了说,我正在使用Backbone Router作为url状态。

1 个答案:

答案 0 :(得分:1)

只有当按下按钮导航回来时才会触发“后退按钮”事件,而不是用于关闭键盘时。

你可以得到的最接近的是由于键盘关闭而截取窗口调整大小并做出相应的反应:

$(document).ready(function() {
    var curWindow = $(window);
    var initialHeight = curWindow.height();
    curWindow.resize(function() {
        console.log("resize: height="+curWindow.height());
        if (curWindow.height() == initialHeight) {
      // TODO: Keyboard hidden!
        } 
    });
});