Маршрутизатор Ionic 4 уничтожает страницу программно - PullRequest
1 голос
/ 23 октября 2019

У меня есть поток регистрации в моем приложении. На каждом этапе я не хочу, чтобы пользователь мог перейти на предыдущую страницу, однако, ionic поддерживает эти страницы «живыми», и пользователь может вернуться назад, проводя слева направо или используя кнопку «Назад» наих телефон.

Я перевожу каждого пользователя, используя систему маршрутизации ionic:

 this.router.navigateByUrl('/invite');

Я также пробовал:

 this.router.navigate(['/invite']);

и:

 this.router.navigateByUrl('/invite', { skipLocationChange: true });

Это вызывает у меня много проблем на данный момент, и я немного погуглил и не смог найти решения.

Есть ли способ использовать систему маршрутизатора ionic для уничтожения страницы или запрета обратной навигации на некоторых страницах? Будем признательны любому совету. Спасибо.

Ответы [ 2 ]

0 голосов
/ 24 октября 2019

Вы должны использовать ионную навигацию для этого, они предоставляют функциональные возможности.

Внедрить navController в конструктор.

  constructor(
    private navCtrl: NavController,
  ) {
  }

Затем используйте navigateroot, он уничтожит предыдущую страницу

this.navCtrl.navigateRoot('/home', { animated: true, animationDirection: 'forward' });

Просмотрите следующую документацию

https://ionicframework.com/docs/angular/navigation

0 голосов
/ 24 октября 2019

Вы можете использовать route-guard

Это хороший пример. Пройдите через него

https://alligator.io/angular/route-guards/

в вашем routing module add

const myRoutes: Routes = [
  { path: '', component: yourHomeComponent },
  { path: 'dashboard',
    component: anyComponentComponent,
    canActivate: [CanActivateRouteGuard]
  }
];

сделай свой простой маршрут гурдом

import { Injectable } from '@angular/core';
import { CanActivate,
         ActivatedRouteSnapshot,
         RouterStateSnapshot } from '@angular/router';

import { MyAuthService } from './auth.service';

@Injectable()
export class _CanActivateRouteGuard implements CanActivate {

  constructor(private auth: MyAuthService) {}

  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): boolean {
      return this.auth.isUserAuthenticated();
  }
}
...