【问题标题】:Ionic 2 - how to handle backButtonIonic 2 - 如何处理返回按钮
【发布时间】:2016-06-20 07:52:52
【问题描述】:

我想在 Ionic2 中添加本机 backButton 事件处理程序。问题是 Ionic2 文档说要使用 Platform 实例的 registerBackButtonAction 方法,但没有这样的方法。

而不是registerBackButtonAction,有backButton 属性,它是EventEmitter 类型(但它不起作用,或者我不知道如何订阅)。

有什么想法吗? 马辛

【问题讨论】:

    标签: angular ionic2 eventemitter


    【解决方案1】:

    您可以使用 angular2 routerOnActivate.. location .back() 处理

         <button danger (click)="navigateBack()">Danger</button>
    

    您的 ts 文件包含

        // Import    
        import {ComponentInstruction} from '@angular/router-deprecated';
    
        // Class
        export class ViewImagePge {
        public prev: ComponentInstruction;
        } 
    
        public routerOnActivate(next: ComponentInstruction, prev: ComponentInstruction): void {
          this.prev = prevInstruction;
        }
    
        // navigateBack() Function
    
        public navigateBack(): void {
        if(this.prev && this.prev.routeName === 'Foo') {
              this.location.back();
            } else {
    
              // can keep default path
    
              this.router.navigate(['/Foo']);
            }
        }
    

    【讨论】:

      【解决方案2】:

      几天前我一直在处理硬件后退按钮,现在,在使用 mike(来自 ionic)之后,我知道出了什么问题。

      问题是他们没有优先级层次结构。默认情况下,只有一个具有默认优先级值 (0) 的操作,并且该操作处理所有事情。

      因此,如果您想添加自定义操作,则需要在您的操作中添加默认代码操作,否则您将被覆盖并且不会关闭侧边菜单。

      我在 github 上有一个 demo,带有一个后退按钮服务和一个带有两页的侧边菜单。在第 1 页中,我双击退出应用程序,在第 2 页上是默认设置,在两个页面上,我都处理侧菜单关闭而不是显示 toast。

      暂时不处理模态,但我想尽快添加它。

      希望对你有帮助。

      【讨论】:

      • 很好的答案,你的解释帮助了我!谢谢
      • 很高兴为您提供帮助 :)
      【解决方案3】:

      您可以使用以下代码。它适用于按下移动设备的后退按钮

      platform.registerBackButtonAction(function () {
      
          if(menu.isOpen())
                    {
                      menu.close();
                    }else
                    {
                      nav.pop();  
                    }          
          }, 100);
      

      【讨论】:

        猜你喜欢
        • 2017-05-13
        • 2017-06-20
        • 1970-01-01
        • 2019-02-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-20
        相关资源
        最近更新 更多