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.
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).
$ionicPlatform.registerBackButtonAction(function (event) {
event.preventDefault();
}, 100);
this will prevent back button functionality.
The example in the docs shows the event listeners — even the deviceready
— being attached after the document onload
event has fired.
Using your code:
function onDeviceReady() {
document.addEventListener("backbutton", function (e) {
e.preventDefault();
console.log("hello");
}, false);
}
document.onload = function () {
document.addEventListener("deviceready", onDeviceReady, false);
};