2016-10-27 17 views
0

我有下面的代码,如果用户按下后退按钮在他的设备上,我想向他展示一个弹出他能够退出应用程序之前。但是,这对我不起作用。警告框显示,但应用程序也关闭。科尔多瓦返回按钮触发事件侦听器,但应用程序关闭反正

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

科尔多瓦版本:6.4.0 而有人拿出来之前 - cordova.js被包含在索引中的HTML页面。 UI是使用onsenUI和angularJS v1构建的。

+0

关于进一步调试,问题不在于与科尔多瓦,它实际上是与温泉的UI。看看 - https://onsen.io/v2/docs/guide/angular1/#device-back-button我仍然试图解决,因为在onsen ui文档中有多个监听器。 –

回答

1

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

你可以在ons.ready事件后使用“disableDeviceBackButtonHandler”来控制它 。之后,添加一个事件监听器的后退按钮和 做任何你想要的。

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

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

你可以这样做以下:

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); 

希望它会帮助你。

+0

这个问题与onsen UI有关。但仍然无法弄清楚。 https://onsen.io/v2/docs/guide/angular1/#device-back-button –

相关问题