I use platform.registerBackButtonAction in my ionic app its work in normal apk but if create --prod it not give the name of the active page please help how to solve ?
Have a look to this topic if it’s not already done
1 Like
Helpful…Thank you for sharing
Hello,
I have the same problem, have you solved this?
Thank you
Did you read the linked issue which describes the problem? The bottom line is that it is a mistake to write any code that depends on the string names of classes or methods - it will break in production.
1 Like
Thank you. I’ve got it to work now. My problem now is that I don’t know how to determine if an active view is an overlay such as modal or alert dialog. Do you have any idea?
Here is my code
this.platform.registerBackButtonAction(() => {
let nav = app._appRoot._getActivePortal() || app.getActiveNav();
let activeView = nav.getActive().instance;
if (activeView != null) {
if (nav.canGoBack()) {
if (activeView instanceof PageTwo) {
// do something
} else {
nav.pop();
}
} else if (activeView.isOverlay) {
activeView.dismiss();
} else {
let alert = this.alertCtrl.create({
title: 'Ionic App',
message: 'Do you want to close the app?',
buttons: [{
text: 'Cancel',
role: 'cancel',
handler: () => {
console.log('Application exit prevented!');
}
},
{
text: 'Close',
handler: () => {
this.platform.exitApp();
}
}]
});
alert.present();
}
}
});