1) Using IonRouterOutlet to check through history stack
import { IonRouterOutlet, Platform } from '@ionic/angular'; import { Plugins } from '@capacitor/core'; const { App } = Plugins; export class HomePage { constructor(private platform: Platform, private routerOutlet: IonRouterOutlet){ . . . this.platform.backButton.subscribeWithPriority(-1, () => { if (!this.routerOutlet.canGoBack()) { navigator['app'].exitApp(); //App.exitApp(); // if using Capacitor framework, we can use Plugins component } }); } . . . }
2) Using Location from Angular library
import { Platform } from '@ionic/angular'; import { AfterViewInit, OnDestroy } from "@angular/core"; import { Subscription } from "rxjs"; import { Location } from '@angular/common'; export class HomePage implements OnDestroy, AfterViewInit { backButtonSubscription: Subscription; constructor(private platform: Platform, private location: Location){ . . . } ngAfterViewInit() { this.backButtonSubscription = this.platform.backButton.subscribe(() => { if (this.location.isCurrentPathEqualTo("HOME_PAGE_URL")){ navigator['app'].exitApp(); } }); } ngOnDestroy() { this.backButtonSubscription.unsubscribe(); } . . . }
References:
Ionic Framework Documentation - Hardware Back Button
How To Exit App On Back Press | Ionic 4
Further reading:
Ionic 5 handle back hardware event to confirm exit by user
No comments:
Post a Comment