Ionic Framework v4.0 Аппаратная кнопка возврата не работает? - PullRequest
0 голосов
/ 08 марта 2019

Мы не можем выполнять события кнопки назад, ионные с угловыми на платформе Android.

Когда я нажимаю кнопку «Несколько раз» на кнопке «Назад», мы получаем несколько раз оповещений.

Как мы выполняем кнопку на определенных страницах с определенными окнами оповещений, и когда я нажимал кнопку «Назад», существующуюокно оповещения или контроллер отклонены.

Пожалуйста, обратите внимание на применяемый код. app.component.ts

Спасибо

import { Component,ViewChildren,QueryList} from '@angular/core';
import {Platform} from '@ionic/angular';
import {MenuController, NavController,LoadingController,IonRouterOutlet} from '@ionic/angular';
import {ToastController,ModalController,AlertController} from '@ionic/angular';
import {Router} from '@angular/router';

export class AppComponent {

    @ViewChildren(IonRouterOutlet) routerOutlets: QueryList < IonRouterOutlet > ;
ngOnInit() {
    this.backButtonHandler()
}
backButtonHandler() {
    this.platform.backButton.subscribeWithPriority(99999, async() => {
        // close action sheet
        //  this.alertBook.dismiss();
        try {
            const element = await this.alertCtrl.getTop();
            if (element) {
                element.dismiss();
                return;
            }
        } catch (error) {}

        // close side menu
        try {
            const element = this.menuCtrl.getOpen();
            if (element !== null) {
                this.menuCtrl.close();
                return;

            }

        } catch (error) {

        }
        this.routerOutlets.forEach((outlet: IonRouterOutlet) => {
            if (outlet && outlet.canGoBack()) {
                outlet.pop();

            } else if (this.router.url === '/home') {
                console.log("trigger home");
                this.createAlert();
            } else if (this.router.url === '/contact') {
                console.log("trigger contact");
                this.contactAlert();
            }
        });
    });
}
...