最近在用flutter开发app,遇到了app关闭后,打开仍然是登陆页面的问题。
为了解决这个问题,我们首先应该清楚,登陆的操作是为了干什么?
答:是为了请求token。
所以我们引入了shared_preferences,用来存放token(app关闭后,存储的信息依然存在。不会用的同学可以百度)
接着,我们在main.dart的build中把home重定向到登陆后的页面即可。
// entrance 为重定向的路由。
Widget build(BuildContext context) {
applic.ctx = context;
return MaterialApp(
navigatorKey: navigatorKey,
routes: Config.routes,
debugShowCheckedModeBanner: false,
theme: ThemeData(
primarySwatch: Colors.blue,
),
locale: _locale,
localizationsDelegates: [
localizationDelegate, // 注册一个新的delegate
const TranslationsDelegate(),
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate // <-- needed for iOS
],
supportedLocales: applic.supportedLocales(),
home: entrance);
}
在main.dart的initState中判断是否有token
SpUtil.preferences.getString("token") 为用shared_preferences存好的token
dynamic entrance;
void initState() {
super.initState();
if (SpUtil.preferences.getString("token") != null) {
entrance = Home();
}else{
entrance = Login();
}
}
这样就可以判断进入登录页面还是主页。