介绍
本示例介绍在Navigation中如何完成路由拦截:首次登录时记录登录状态,再次登录时可以直接访问主页无需重复登录,当退出登录时,下次需重新登录。
使用说明
1.点击Navigation路由拦截案例。
2.在弹出的半模态页面中勾选"阅读并同意协议",点击按钮"手机号码一键登录"。
3.进入主页,点击返回上级页面按钮,重新点击Navigation路由拦截案例,即可直接进入主页,不需要重复登录。
4.点击主页的"退出登录"按钮,退出案例,此时点击Navigation路由拦截案例需重新登录。
实现思路
1、在路由模块增加路由拦截器interceptor.ets,定义拦截容器、注册方法和公共拦截逻辑,interceptor.ets
/**
* 定义拦截实现接口
*
* @param routerInfo 需要拦截的路由名
* @param param 路由参数
*/
export interface InterceptorExecute {
executeFunction(router: RouterInfo, param?: string): boolean;
}
/**
* 定义拦截器方法
*/
export class Interceptor {
// 定义拦截器容器
private static list: Array<InterceptorExecute> = [];
/**
* 注册拦截页面
*
* @param interceptorFnc 子模块传过来的自定义拦截函数
*/
public static registerInterceptorPage(interceptorFnc: InterceptorExecute): void {
Interceptor.list.push(interceptorFnc);
}
/**
* 公共拦截器逻辑
*
* @param routerInfo 接收传过来的路由名
Navigation路由拦截实践

最低0.47元/天 解锁文章
1181

被折叠的 条评论
为什么被折叠?



