我尝试在验证某些内容后设置为root当前页面,在这种情况下,启动服务后因为一旦启动,用户无法返回上一页,直到完成当前页面但是如果用户没有开始服务,他仍然可以回到上一个服务。
那么,你知道怎么做吗?
谢谢!
答案 0 :(得分:0)
如果您已经在该页面上,而不是将其设置为Root,则可以使用Nav Guards
在某些情况下,开发人员应该能够控制离开和的视图 进入。为了实现这一点,NavController具有ionViewCanEnter和 ionViewCanLeave方法。类似于Angular 2路线卫士,但是 与NavController集成更多。
因此,我们可以检查服务是否已经启动但尚未完成,并阻止用户离开页面,直到服务完成。
为此,我们可以这样做:
// Method that gets executed when the user tries to leave the page
ionViewCanLeave() {
if(this.serviceHasStarted && !this.serviceHasFinished) {
let showAlertMessage = this.alertCtrl.create({
title: 'Error',
message: '¿You can\'t leave the page until ...',
buttons: [
{
text: 'Ok',
handler: () => {
}
}]
});
showAlertMessage.present();
// Return false to prevent the user from leaving the page
return false;
} else {
// Return true to allow the user to leave the page
return true;
}
}