2016-10-27 12 views
0

У меня есть следующий код, где, если пользователь нажимает кнопку «Назад» на своем устройстве, я хочу показать ему всплывающее окно, прежде чем он сможет выйти из приложения. Однако это не работает для меня. Появится окно предупреждения, но приложение также закрывается.Кнопка кордовы назад запускает прослушиватель событий, но приложение закрывается в любом случае

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

Кордова версия: 6.4.0 И прежде чем кто приносит его - cordova.js включен на странице индекса HTML. Пользовательский интерфейс построен с использованием onsenUI с угловым JS v1.

+0

При дальнейшей отладке вопроса не с Кордовой, это на самом деле с онсэном-интерфейсом. Посмотрите на - https://onsen.io/v2/docs/guide/angular1/#device-back-button. Я все еще пытаюсь решить, поскольку в документации onsen ui есть несколько слушателей. –

ответ

1

Выяснил это. How to control android backbutton routes? Последний 0 проголосовавший ответ является правильным.

Вы можете управлять им с помощью «disableDeviceBackButtonHandler» после событий ons.ready. После этого добавьте прослушиватель событий для кнопки «Назад» и сделайте все, что хотите.

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. Тем не менее, не удалось это выяснить. https://onsen.io/v2/docs/guide/angular1/#device-back-button –