Некоторые из событий жизненного цикла Ionic не запускаются в Ionic 4, я думаю, из-за переключения на Angular Routing вместо Ionic маршрутизации. В частности, в документации NavController показано, что ionViewCanEnter работает с методом navCtrl.push, а не с новым способом - navCtrl.navigateRoot или forward / backwards (это то, что я впервые попробовал перед тем, что было напечатано выше).
Итак, чтобы исправить это, я пошел с обычными охранниками жизненного цикла угловой маршрутизации, но для навигации остановился на Ionic NavController. Я создал новую защиту жизненного цикла, как показано:
canActivate(
next: ActivatedRouteSnapshot,
state: RouterStateSnapshot): boolean {
if (this.userService.isLoggedIn()) { return true; }
this.navCtrl.navigateRoot('/tabs/(account:account/login)');
return false;
}
Прекрасно работает.
Хорошая документация здесь для всех, кто изучает Ionic и Angular вместе