angular - Ionic 4 - 在平台硬件后退按钮 android 上关闭或关闭模态

在 ionic 4 中,在硬件后退按钮上按下我想关闭或关闭任何将出现的模态。 我使用了下面给出的代码,这里的条件“if(modal) { modal.dismiss(); }”总是得到满足,即使先前的模态被解雇

constructor(private platform: Platform, private modalCtrl: ModalController) {
this.initializeapp();
}
initializeapp() {
this.platform.registerBackButtonAction(1, async () => {
    const modal = await this.modalCtrl.getTop();
    if (modal) {
        modal.dismiss();
    }
});
}

最佳答案

做了一些挖掘,Ionic 注册了一个自定义事件 ionBackButton 来处理硬件后退按钮按下:

  • https://github.com/ionic-team/ionic/blob/master/core/src/utils/hardware-back-button.ts#L20

管理 Ionic 中所有覆盖的覆盖代码通过关闭最顶层的覆盖来处理此 ionBackButton 事件:

  • https://github.com/ionic-team/ionic/blob/master/core/src/utils/overlays.ts#L66

那么您的代码试图实现什么?

它似乎只有在 backdropDismiss 也设置为 true 时才会这样做:

if (lastOverlay && lastOverlay.backdropDismiss) {

我认为这意味着它被归类为可选/低级叠加层,而不是模拟模态。

https://stackoverflow.com/questions/57024833/

相关文章:

gcc - 从一个编译器版本到另一个编译器版本的符号重定位

jenkins - BlueOcean编辑器 "scm"输入什么

reactjs - 如何使用 Jest 和 Enzyme 在 nextjs 应用程序中编写单元测试

flutter - 如何修复 flutter 上的 "A RenderFlex overflowed

spring-boot - spring boot 微服务 docker 实现中 google oa

c# - C# 中 C++ 结构化绑定(bind)的模拟

json - 如何从 yang 模块生成 JSON 模式?

ios - 如果先前已加载某些网页,WKWebView 不会加载 .archive 文件

wordpress - 如何优化WP_Query(包括CPT和ACF)

c# - 502 Bad Gateway nginx/1.14.1 elasticbeanstalk