用户单击电话后退按钮时,ionic 4处理模态

时间:2019-05-22 03:44:16

标签: ionic-framework ionic4 ionic-native

用户单击手机的后退按钮会发生什么?如果模式打开的话。

注册后退按钮:

// To prevent interference with ionic's own backbutton handling
// you can subscribe with a low priority instead
this.platform.backButton.subscribe(() => {
  // code that is executed when the user pressed the back button
  // and ionic doesn't already know what to do (close modals etc...)
  self.modalController.dismiss();
});

代码问题:

  • 关闭/关闭模式很好!

  • 但是它也将打开模态的页面后退。意味着它将页面弹出到模态后面。

这不应该发生,页面不应该弹出-仅模式应该关闭。

检查添加的图像gif-> Click here to see the problem

1 个答案:

答案 0 :(得分:0)

您可以考虑使用具有较高优先级的platform.backButton.subscribeWithPriority()(例如9999)。

然后检查modalController.getTop()是否存在打开的模式。

constructor(private modalCtrl: ModalController, private nav: NavController) { 
}

ngOnInit() {
  this.platform.backButton.subscribeWithPriority(9999, () => {
    this.closeModalOrPage();
  });
}

async closeModalOrPage(){
  let modal = await this.modalCtrl.getTop();
  if (modal){
    modal.dismiss();
  } else {
    this.nav.pop();
  }
}