David D. David D. - 3 months ago 82
Android Question

Disable hardware back button in Ionic application?

I'm trying to disable the back button on my Cordova app.
I'm using AngularJS + Ionic Framework.
I found topics about this and tried the code bellow, but it has absolutely no effect. Any idea?
Thanks!

index.html

<head>
<script>
document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
document.addEventListener("backbutton", function (e) {
e.preventDefault();
console.log("hello");
}, false );
}
</script>
</head>


Note that when I push back button, I have "hello" displayed in my console.

Answer

Finally found the answer on Ionic Forum thread:

http://forum.ionicframework.com/t/handling-the-hardware-back-buttons/1505/7

$ionicPlatform.registerBackButtonAction(function () {
  if (condition) {
    navigator.app.exitApp();
  } else {
    handle back action!
  }
}, 100);

$ionicPlatform.registerBackButtonAction allows to completly overwrite back button behavior. First param is a callback function and the secondone a priority (only the callback with the highest priority gets executed).