flutter 本地存储数据(shared_preferences)

这篇具有很好参考价值的文章主要介绍了flutter 本地存储数据(shared_preferences)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、shared_preferences 本地存储插件简介

  1. shared_preferences 是 Flutter 提供的 本地数据存取 插件 ;
  2. 在不同的平台 , 基于不同的机制开发 , 如 Android 平台中基于 SharedPreferences 开发 , iOS 平台中基于 NSUserDefaults 开发 ;
  3. 访问本地文件是耗时操作 , 因此访问 shared_preferences 存储是一个 异步操作 ;
  4. 为简单数据封装平台特定的持久存储(iOS和macOS上的NSUserDefaults, Android上的SharedPreferences,等等)。数据可能会异步持久化到磁盘,并且不能保证写入返回后会持久化到磁盘,所以这个插件不能用于存储关键数据。

实现:

添加插件依赖:

dependencies:

  shared_preferences: 2.0.15 #本地存储插件

flutter 本地存储数据(shared_preferences)

简单示例:

import 'package:shared_preferences/shared_preferences.dart';
/**
 * 存储数据到本地
 */
enum StoreKeys {
  token,
}
enum StoreName{
  name,
}
enum StorePassword{
  password,
}

class Store {
  // static StoreKeys storeKeys;
  final SharedPreferences _store;
  static Future<Store> getInstance() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    return Store._internal(preferences);
  }

  Store._internal(this._store);

  /**
   * 保存token
   */
  getString(StoreKeys key) async {
    return _store.get(key.toString());
  }

  setString(StoreKeys key, String value) async {
    return _store.setString(key.toString(), value);
  }

/**
 * 保存用户名
 */
    getNameString(StoreName key) async {
    return _store.get(key.toString());
  }

  setNameString(StoreName key, String value) async {
    return _store.setString(key.toString(), value);
  }

  /**
   * 保存密码
   */

    getpasswordString(StorePassword key) async {
    return _store.get(key.toString());
  }

  setPasswordString(StorePassword key, String value) async {
    return _store.setString(key.toString(), value);
  }

   remove(StoreKeys key) async {
    return _store.remove(key.toString());
  }
}

调用方法:

             String name = 'admin'; //测试数据
              String password = '123456'; //测试数据
              Store store = await Store.getInstance(); //初始化

              await store.setNameString(StoreName.name, name); //调用写入方法
              String testName = await store.getNameString(StoreName.name);//获取对应数据
              print("获取的用户名 $testName");

              await store.setPasswordString(StorePassword.password, password);//调用写入方法
              String testPassword =
                  await store.getpasswordString(StorePassword.password);//获取对应数据
              print("获取的密码 $testPassword");

基本使用

支持数据类型

int,  double,  bool,  String , List<String>

写入数据 

var user = await SharedPreferences.getInstance(); //初始化
user .setString("name", "张三");
user .setInt("age", 22);
user .setBool("sex", true);
user .setDouble("height", 177.7);
user .setStringList("address", <String>["石家庄", "长安区"]);

 读取数据 

var user = await SharedPreferences.getInstance(); //初始化
String? name = user .getString("name");
int? age = user .getInt("age");
bool? sex = user .getBool("sex");
double? height = user .getDouble("height");
List<String>? address = user .getStringList("address");

 

删除数据 

 删除一个数据

var user= await SharedPreferences.getInstance(); //初始化
user.remove("name");
 

删除全部数据 

var user = await SharedPreferences.getInstance(); //初始化
user.clear();
 

 获取所有key


var user = await SharedPreferences.getInstance();
var keys = user.getKeys();
 

key是否存在


var user = await SharedPreferences.getInstance();
var b = user.containsKey("name"); 文章来源地址https://www.toymoban.com/news/detail-402994.html

到了这里,关于flutter 本地存储数据(shared_preferences)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Flutter】Flutter 数据存储 Hive 的简要使用说明

    🎉想要精通 Flutter,掌握更多技巧和最佳实践?好消息来了!👉

    2024年02月10日
    浏览(43)
  • Flutter 中数据存储的四种方式

    在 Flutter 中,存储是指用于本地和远程存储和管理数据的机制。以下是 Flutter 中不同存储选项的概述和示例。 Shared Preferences(本地键值存储) Shared Preferences 是一种在本地存储少量数据(例如用户首选项或设置)的简单方法。 它适合以持久的方式存储键值对。 shared_preferenc

    2024年02月03日
    浏览(29)
  • Flutter 本地SQLite数据库版本升级处理

    前言 上一篇我们介绍了使用 sqflite 这个数据库工具在 Flutter 的应用中建立本地数据库的实例应用。了解过数据库的同学应该会知道,数据表结构是可能发生改变的。但是 App 的版本会有碎片化的存在,如果数据表结构发生了改变,就需要对旧版本 App 的数据表结构进行同步,

    2023年04月09日
    浏览(43)
  • 【uniapp】存储数据到本地文件以及读取本地文件数据

          可能存在的问题:                 1、高版本的安卓系统可能在文件系统中看不到文件但是可以读取                 2、该方法在安卓10系统中可能会有问题  

    2024年02月11日
    浏览(50)
  • 小程序 自建本地数据库 本地存储

    大家好哇,我是梦辛工作室的灵,在最近的开发过程中又遇到了一些问题,这次是关于本地存储的,在小程序面进行存储一些数据,本来就依靠小程序的本地储存API 就可以实现,但数据量小还好,如果数据量大那么就不在方便了,主要就没办法查询或批量修改,我这次主要是

    2024年02月08日
    浏览(43)
  • HarmonyOS鸿蒙应用开发——数据持久化Preferences

    数据持久化就是将内存数据通过文件或者数据库的方式保存到设备中。HarmonyOS提供两两种持久化方案: Preferences :主要用于保存一些配置信息,是通过文本的形式存储的,在使用中会将文本中的数据全量加载到内存中,不太适合存储大量数据的场景。 数据库 :分为两种,一

    2024年02月05日
    浏览(36)
  • 为什么越来越多的企业选择云数据存储而放弃本地数据存储?

    随着企业的发展,它们会产生大量数据。企业已经意识到,利用他们的数据做出数据驱动的决策对于创新和保持竞争优势至关重要。 本文将会探讨企业在收集和分析大数据时可能面临的主要挑战,以及将企业数据仓库部署到本地或云数据存储的选择。我们将根据安全性、成本

    2024年02月08日
    浏览(46)
  • 从本地到云端:豆瓣统一的数据存储实践

    豆瓣成立于 2005 年,是中国最早的社交网站之一。在 2009 到 2019 的十年间,豆瓣数据平台经历了几轮变迁,形成了 DPark + Mesos + MooseFS 的架构。 由机房全面上云的过程中,原有这套架构并不能很好的利用云的特性,豆瓣需要做一次全面的重新选型,既要考虑未来十年的发展趋

    2024年02月03日
    浏览(44)
  • 【Swift】GRDB数据库本地存储聊天记录

      使用示例:  

    2024年01月20日
    浏览(47)
  • Unity 之 转微信小游戏本地数据存储方法分享

    近期在将Unity转换为小游戏的时候发现在读写本地文件的时候,使用 Application.persistentDataPath 缓存路径来保存文件失败,原因是WebGL的平台限制。所以导致了原有读写本地文件的代码需要根据平台进行修改。 一种最简单的方式就是将原来存储到文件中的内容,在WebGL平台使用

    2024年02月05日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包