I want the app to close on the home page when the hardware back-button is triggered.
It doesn’t.
1/ Is it a normal behaviour or did I do something wrong ?
2/ I tried this :
backButtonEvent(){
this.platform.backButton.subscribe(()=>{
console.log ('exit');
navigator['app'].exitApp();
})
It works, but it works also in the other pages… so I can’t go back to the home page, I close the app.
Is there a way to just apply this behaviour when I’m on the home page?
1 Like
Have you tried using paired lifecycle events (such as ionViewDidEnter
and ionViewWillLeave
) to register and deregister this action?
I thought about doing it, but I have to do it in every page…
So I wondered if someone had a better idea…
This issue is on the roadmap of the ionic team : https://github.com/ionic-team/ionic/issues/16611
Thanks anyway, I’ll try that untill the framework has treated this issue.
Le mar. 11 déc. 2018 à 19:42, Robert Coie ionicframework@discoursemail.com a écrit :
I don’t see why, based on what you’ve said here. Why isn’t just the home page sufficient?
1 Like
Because I’m stupid… so obvious…
Thanks! I’ll try.
Here is the solution : in homepage.ts
ionViewDidEnter(){
this.subscription = this.platform.backButton.subscribe(()=>{
navigator['app'].exitApp();
});
}
ionViewWillLeave(){
this.subscription.unsubscribe();
}
19 Likes
serkon
January 31, 2019, 10:50pm
7
How can i import the “navigator” property?
1 Like
I don’t know… I looked in my file, no special import…Don’t remember where I got it.
navigator is a global variable
serkon
February 14, 2019, 9:16pm
10
work for me in ionic 4 mantap
Hi… I am getting run time error “ERROR TypeError: Cannot read property ‘exitApp’ of undefind” when I use below code for back button
ionViewWillLeave() {
if (this.commonService.checkLogin) {
if (this.router.url === ‘/app-landing’) {
// navigator[‘app’].exitApp();
}
else if (this.router.url === ‘/login’) {
navigator[‘app’].exitApp();
}
}
Anything wrong with my code?
You should credit apropos with the solution since they clearly steered you in the right direction.
krima
May 28, 2019, 6:18am
14
how did you declare subscription?
1 Like
subscription : any ;
Le mar. 28 mai 2019 à 08:28, Krima via Ionic Forum ionicframework@discoursemail.com a écrit :
2 Likes
I do it like this in my App component
private setAndroidBackButtonBehavior(deviceInfo: DeviceInfo): void {
if (deviceInfo.platform == "android") {
this.platform.backButton.subscribe(() => {
if (window.location.pathname == "/home") {
navigator['app'].exitApp();
}
});
}
}
5 Likes
Lachu
July 3, 2019, 9:44am
17
Is Navigator is A variable or interface,
How can i declare navigator…?
This worked for us. Thanks!!
ionViewDidEnter(){ this.subscription = this.platform.backButton.subscribe(()=>{ navigator[‘app’].exitApp(); }); } ionViewWillLeave(){ this.subscription.unsubscribe(); }
tq …
It’s an interface.Put inside your function
navigator['app'].exitApp();
same as it’s written.