如何清除历史记录或删除Ionic 4或Angular 7中的历史记录中的页面或组件

时间:2019-01-21 17:49:07

标签: angular ionic-framework

我正在Ionic 4中创建注销页面,我想要清除路由器历史记录,以便后退按钮不起作用,而且我想知道一旦导航到登录屏幕或导航之前如何销毁注销页面。到登录页面。

我尝试在Construction函数中运行代码以清除本地存储,并且一切正常,但是第一次没有运行该代码。据我了解,该页面已经加载,因此其不再运行Constructor函数。我尝试将代码放在ngDoCheck()上,但是它触发了多次,我不想这么做。

我想清除路由的历史记录,所以退出后后退按钮不起作用,而且我想知道如何清除或删除以前访问过的页面。

2 个答案:

答案 0 :(得分:1)

您不能阻止用户单击返回或删除其历史记录,但是可以在登录页面中添加防护措施,以便用户登录后可以重定向用户。它应该类似于

保护文件

@Injectable({
  providedIn: 'root',
})
export class AuthGuard implements CanActivate {
  canActivate(
    next: ActivatedRouteSnapshot,
    state: RouterStateSnapshot) {
    if(isUserLoggedIn()){ // this redirects the user
       this.router.navigate(['/logged-in-users-area']);
    }
    return isUserLoggedIn(); // this prevents him from reaching the login page
  }
}

您路由文件

const routes: Routes = [{
    path: 'login',
    component: MyLoginComponent,
    canActivate: [AuthGuard],
  }]

答案 1 :(得分:0)

注销时使用window.location.reload

window.location.reload();