flutter app拒绝二次登陆

最近在用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();
    }
    }

这样就可以判断进入登录页面还是主页。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容