cordova 后退按钮触发事件侦听器但应用程序仍然关闭

cordova back button fires event listener but app closes anyway

我有以下代码,如果用户在他的设备上按下后退按钮,我想在他能够退出应用程序之前向他显示一个弹出窗口。但是,这对我不起作用。显示警告框,但应用程序也关闭。

document.addEventListener("deviceready", function() {
    document.addEventListener("backbutton", function(e) {
        e.preventDefault();
        $scope.alertDialog.show();
    }, false);
}, false);

科尔多瓦version:6.4.0 在有人提出之前 - cordova.js 包含在索引 html 页面中。 UI 是使用 onsenUI 和 angularJS v1.

建造的

您可以按照以下方式进行操作:

document.addEventListener("deviceready", function() {
var backbutton=0;
    document.addEventListener("backbutton", function(e) {
       if(backbutton==0){
            backbutton++;
              $scope.alertDialog.show();
             // window.plugins.toast.showShortCenter('Press again to exit');
            $timeout(function(){backbutton=0;},5000);
        }else{
            navigator.app.exitApp();
        }
    }, false);
}, false);

希望对您有所帮助。

想通了。 How to control android backbutton routes? 最后 0 票的答案是正确的。

You can controll it with "disableDeviceBackButtonHandler" after ons.ready event. After that add a event listener for back button and do anything you want.

ons.ready(function() {
  ons.disableDeviceBackButtonHandler();

  // Use Cordova handler
  window.document.addEventListener('backbutton', function() {
    // Handle backbutton event
  }, false);
});