赞
踩
class Interceptor extends NavigatorObserver { @override void didPush(Route<dynamic> route, Route<dynamic>? previousRoute) { WidgetsBinding.instance!.addPostFrameCallback((_) { // 在路由推送后检查 token,并在下一帧执行 checkTokenAndNavigate(route.settings.name, route.navigator!.context); }); } void checkTokenAndNavigate(String? routeName, BuildContext context) { // TODO: 在这里检查用户的登录状态,如果没有 token,则导航到登录页面 bool hasToken = true; String token = SharedPreferencesManager().getToken(); print("拦截器里面的token---${token}"); if(token.isNotEmpty || routeName == "/" || routeName == "/index"){ hasToken = true; }else{ hasToken = false; } if (!hasToken && routeName != '/gfLogin') { Navigator.of(context).pushReplacementNamed('/gfLogin'); } } }
return MaterialApp(
title: 'Flutter Demo',
navigatorObservers: [Interceptor()],
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。