2016-10-27 18 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 –

相關問題