在 ionic 5 android 中按下后退按钮时应用程序关闭,而模式打开

Posted

技术标签:

【中文标题】在 ionic 5 android 中按下后退按钮时应用程序关闭,而模式打开【英文标题】:App closes when the back button is pressed in ionic 5 android while the modal is opened 【发布时间】:2021-08-31 06:53:19 【问题描述】:

应用程序在 ionic 中意外关闭。 我正在使用离子 v-5 和 codova v-10。 当按下android硬件后退按钮时,我试图关闭模式,但应用程序却完全意外关闭。我尝试在cordova的离子论坛上冲浪,那里的解决方案对我有用。

我在应用组件和模态组件中都尝试了这段代码

 this.platform.backButton.subscribeWithPriority(10, () => 
      console.log('angular Handler was called!');
      this.modal.dismiss();
    );

 this.platform.backButton.subscribe(() =>     
        console.log("back button pressed")
        if(this.modal.top())
        
          this.modal.dismiss();
        
    );

即使尝试了这两个代码,它仍然没有工作,当按下后退按钮时应用程序仍然关闭。 我尝试了很长时间,但找不到解决方案!

【问题讨论】:

我的应用程序在 Capacitor 上运行时遇到了同样的问题,我解决了它更新 Capacitor 依赖项,例如:“@capacitor/app”、“@capacitor/core”、“@capacitor/android ", "@capacitor/cli"。也许你也应该更新你的 Cordova 包。 【参考方案1】:

将此代码放入函数initializeBackButtonCustomHandler()

并在initializeApp()这个函数中调用函数

    this.platform.backButton.subscribeWithPriority(0, async () => 
      this.alert.dismissLoading();
      try 
        const element = await this.modalCtrl.getTop();
        if (element) 
          element.dismiss();
          return;
        
       catch (error) 
      
);

【讨论】:

在模态组件的app组件中吗? 谢谢曼西。

以上是关于在 ionic 5 android 中按下后退按钮时应用程序关闭,而模式打开的主要内容,如果未能解决你的问题,请参考以下文章

如何防止在android片段中按下后退按钮时调用onCreateView

在颤动中按下移动后退按钮后网站应用程序未退出

在父活动上按下后退按钮

如果在 Fragment 的 WebView 中按下后退按钮,如何返回上一页?

如果在 WebView 中按下后退按钮,如何返回上一页?

如何检测在导航控制器的下一个视图控制器中按下后退按钮