当光标聚焦在一个字段时,Phonegap返回按钮不工作

Phonegap back button not working when cursor focus on a field

本文关键字:Phonegap 返回 按钮 工作 字段 一个 聚焦 光标      更新时间:2023-09-26

我在我的应用程序javascript上重写backbutton事件,像这样:

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

如果光标没有集中在任何元素,存在于webview (CordovaWebView),按后退按钮是好的,在我的情况下,它回到以前的活动。

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

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状态

"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!
        } 
    });
});