我正在创建一个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']);
});
});
}
}
当我将应用程序部署到设备上时,该按钮返回上一页而不是转到特定页面
答案 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']);
});
}
是有道理的-我没有仔细检查。
但是,您似乎也应该详细看一下该问题,因为硬件后退按钮似乎有很多问题: