Flutter存储技术学习 Shared Preferences Android iOS 可运行

本头条核心宗旨

欢迎来到「技术刚刚好」作者,「技术刚刚好」是个人维护,每天至少更新一篇Flutter技术文章,实时为大家播报Flutter最新消息。如果你刚好也在关注Flutter这门技术,那就跟我一起学习进步吧,你的赞,收藏,转发是对我个人最大的支持,维护不易,欢迎关注。

技术刚刚好经历

近几年,移动端跨平台开发技术层出不穷,从Facebook家的ReactNative,到阿里家WEEX,前端技术在移动端跨平台开发中大展身手,技术刚刚好作为一名Android开发,经历了从Reactjs到Vuejs的不断学习。而在2018年,我们的主角变成了Flutter,这是Goolge开源的一个移动端跨平台解决方案,可以快速开发精美的移动App。希望跟大家一起学习,一起进步!

本文核心要点

本文会讲解在Flutter当中存储简单的数据,方便在Android,iOS 手机上读写简单的数据,

在简单示例中,假设您只想在电话上存储简单数据,以后再启动该应用程序时就可以引用该数据,然后共享首选项将帮助您在电话上存储数据。

iOS和macOS上的NSUserDefaults中的共享首选项,Android 上的SharedPreferences

我相信做安卓 iOS 开发的应该知道这两个API

添加依赖:

首先,您需要将包名称添加 shared_preferences到Pubspec.yaml中

在dependencies: 您的 部分中 pubspec.yaml,将以下几行添加为“ 共享的偏好设置”:

现在在您的终端中运行 Flutter程序包 ,我们将安装该 shared_preferences程序包。

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: !isFirstScreen ? IntroScreen() : HomeScreen(),
      
    );
  }
}

在上述代码中,我们创建MyApp StatefulWidget,在home属性中,我们具有isFirsScreen。

要存储布尔值,我们需要创建变量isFirstScreen,如下所示:

bool isFirstScreen = false;
class IntroScreen extends StatefulWidget {
  @override
  _IntroScreenState createState() => _IntroScreenState();
}

class _IntroScreenState extends State {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
        body: Center(
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text("Intro Screen"),
          RaisedButton(
            onPressed: () {},
            child: Text("GO to HomeScreen"),
          )
        ],
      ),
    ));
  }
}

这个时候当我们进入项目就实现一次介绍。

当第二次进入就不显示了。

void gotoHomeScreen(context) async {
    ///Shared Preferences wiill stored types String , int , bool, double
    SharedPreferences pref = await SharedPreferences.getInstance();
    await pref.setBool('seen', true);
    Navigator.of(context).pushReplacement(
      MaterialPageRoute(
        builder: (context) => HomeScreen(),
      ),
    );
  }class HomeScreen extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Text(
          "Home Screen",
          style: TextStyle(
            fontSize: 30,
          ),
        ),
      ),
    );
  }
}然后,我们需要为此在MyApp中获取该密钥,我们需要在MyApp窗口小部件中创建checkFirstScreen。 Future checkFirstScreen() async {     SharedPreferences pref = await SharedPreferences.getInstance();     //if First statement is Null Or NO Value then it will give us Second Value     bool seen = (pref.getBool('seen') ?? false);     if (seen) {       setState(() {         isFirstScreen = true;       });     } else {       setState(() {         isFirstScreen = false;       });     }   }
 Future checkFirstScreen() async {
    SharedPreferences pref = await SharedPreferences.getInstance();
    //if First statement is Null Or NO Value then it will give us Second Value
    bool seen = (pref.getBool('seen') ?? false);
    if (seen) {
      setState(() {
        isFirstScreen = true;
      });
    } else {
      setState(() {
        isFirstScreen = false;
      });
    }
  }

这样就行了。

展开阅读全文

页面更新:2024-04-30

标签:大展   密钥   技术   阿里   终端   最新消息   技术文章   首选   本文   核心   简单   电话   程序包   数据   数码   平台

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top