TheSegfault
12/6/2017 - 12:28 PM

registerBackButtonAction

registerBackButtonAction component to extend in order to add logic to native back button input

import { Platform } from 'ionic-angular';
import { OnDestroy } from '@angular/core';

export abstract class CustomDismissableComponent implements OnDestroy {
    private unregisterBackButtonAction: any; // Function () => void doesn't work

    constructor(private platform: Platform) {
    }

    public abstract dismiss(): void;

    /**
     * If you redefine hook cycle method, make sure to call super.ionViewDidEnter()!
     */
    public ionViewDidEnter(): void {
        this.registerBackButton();
    }

    public ionViewWillLeave(): void {
        this.unregisterBackButton();
    }

    public ngOnDestroy(): void {
        this.unregisterBackButton();
    }

    public registerBackButton(): void {
        this.unregisterBackButtonAction = this.platform.registerBackButtonAction(
            () => {
                this.dismiss();
            },
            10);
    }

    public unregisterBackButton(): void {
        if (this.unregisterBackButtonAction) {
            this.unregisterBackButtonAction();
        }
    }
}