最近在用flutter開(kāi)發(fā)app,遇到了app關(guān)閉后,打開(kāi)仍然是登陸頁(yè)面的問(wèn)題。
為了解決這個(gè)問(wèn)題,我們首先應(yīng)該清楚,登陸的操作是為了干什么?
答:是為了請(qǐng)求token。
所以我們引入了shared_preferences,用來(lái)存放token(app關(guān)閉后,存儲(chǔ)的信息依然存在。不會(huì)用的同學(xué)可以百度)
接著,我們?cè)趍ain.dart的build中把home重定向到登陸后的頁(yè)面即可。
// 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, // 注冊(cè)一個(gè)新的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();
}
}
這樣就可以判斷進(jìn)入登錄頁(yè)面還是主頁(yè)。