0

我覆盖了我的应用程序 javascript 上的后退按钮事件,如下所示:

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 ,但它根本不起作用。

编辑

我忘了说,我正在使用骨干路由器作为 url 状态。

4

1 回答 1

1

“backbutton”事件仅在按下按钮导航返回时触发,而不是在用于关闭键盘时触发。

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

$(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!
        } 
    });
});
于 2013-06-28T10:40:27.420 回答