Кнопка устройства (platform.registerBackButtonAction) не работает. это всегда выход из приложения - PullRequest
0 голосов
/ 03 июля 2018

Кнопка устройства (platform.registerBackButtonAction) не работает для кнопки возврата приложения и не работает для кнопки возврата устройства.

Может кто-нибудь помочь мне, пожалуйста?

Как мне решить мою проблему?

код: -

  ionViewDidLoad() {
    this.navBar.backButtonClick = (e: UIEvent) => {
      const alert = this.alertCtrl.create({
        title: 'App termination',
        message: 'Do you want to close the app?',
        buttons: [{
          text: 'Cancel',
          role: 'cancel',
          handler: () => {
            console.log('Application exit prevented!');
          }
        }, {
          text: 'Close App',
          handler: () => {
            this.platform.exitApp(); // Close this application
          }
        }]
      });
      alert.present();
    }
  }

1 Ответ

0 голосов
/ 04 июля 2018

Измените файл app.component.ts следующим образом,

  import { Platform, IonicApp } from 'ionic-angular';

  constructor(public platform: Platform, private ionicApp: IonicApp){}

  initializeApp() {
    this.platform.ready().then(() => {
      //back button handle
      this.platform.registerBackButtonAction(() => {
        let activePortal = this.ionicApp._loadingPortal.getActive() ||
          this.ionicApp._modalPortal.getActive() ||
          this.ionicApp._toastPortal.getActive() ||
          this.ionicApp._overlayPortal.getActive();

        if (activePortal) {
          activePortal.dismiss();
        }
        else {
          if (this.nav.canGoBack()) {
            this.nav.pop();
          } else {
            this.showAlert();
          }
        }
      });
    });
  }

  showAlert() {
    let confirm = this.alertCtrl.create({
      title: 'Exit Application?',
      message: 'Do you want to exit this application?',
      buttons: [
        {
          text: 'No',
          handler: () => {}
        },
        {
          text: 'Yes',
          handler: () => {
            navigator['app'].exitApp();
          }
        }
      ]
    });
    confirm.present();
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...