在Ionic 4中使用硬件后退按钮的正确方法是什么?

时间:2019-07-19 21:58:52

标签: angular6 ionic4

我正在创建一个ionic 4应用,我想使用设备的硬件后退按钮在特定页面返回

我已在此页面Handling hardware back button in Ionic3 Vs Ionic4中签入以创建我的代码,但是它不起作用

detallesusuario.page.ts

    import { Subscription } from 'rxjs';
    import { Component, OnInit, AfterViewInit, QueryList, ViewChildren}from '@angular/core';
    import { Platform, IonRouterOutlet } from '@ionic/angular';
    import { Router } from '@angular/router';
    @Component({
      selector: 'app-detallesusuario',
      templateUrl: './detallesusuario.page.html',
      styleUrls: ['./detallesusuario.page.scss'],
      })
export class DetallesusuarioPage implements OnInit, AfterViewInit {
  @ViewChildren(IonRouterOutlet) routerOutlets: QueryList<IonRouterOutlet> ;
  sub:Subscription
  constructor(private platform:Platform, private ruta:Router) { }
  ngAfterViewInit(): void {
    this.backButtonEvent();
  }

  ngOnInit() {
  }

  ngOnDestroy() {
    this.sub.unsubscribe();
  }
  backButtonEvent() {
    let u=0;
    this.sub=this.platform.backButton.subscribeWithPriority(0, () => {
      this.routerOutlets.forEach(async(outlet: IonRouterOutlet) => {
                  console.log('paso');
                  await this.ruta.navigate(['menu/inicio/tabs/tab1']);

      });
    });
  }
}

当我将应用程序部署到设备上时,该按钮返回上一页而不是转到特定页面

1 个答案:

答案 0 :(得分:0)

硬件后退按钮处理代码位于:

平台使用check_normality = function(df, response){ lm1 = lm(response ~ var1 + var2 + var3 + var4, data = df) normality_test = shapiro.test(lm1$residuals) p_value = normality_test$p.value p_value >= 0.05 } df = data.frame(response1 = rnorm(100), response2 = rnorm(100), var1 = runif(100), var2 = runif(100)+2, var3 = rnorm(100), var4 = rnorm(100)+runif(100)) check_normality(df, 'response1') 公开了这一点:

在我看来,您在正确使用它。我发现this article展示了相同的技术,还有另一篇论坛帖子。

让我感到奇怪的是,为什么您参与platform.backButton

您是否尝试过直接使用IonRouterOutlet

router

注意:我假设您选择的 backButtonEvent() { this.sub=this.platform.backButton.subscribeWithPriority(0, () => { console.log('paso'); await this.ruta.navigate(['menu/inicio/tabs/tab1']); }); } 是有道理的-我没有仔细检查。

但是,您似乎也应该详细看一下该问题,因为硬件后退按钮似乎有很多问题: