赞
踩
- shared_preferences 是 Flutter 提供的 本地数据存取 插件 ;
- 在不同的平台 , 基于不同的机制开发 , 如 Android 平台中基于 SharedPreferences 开发 , iOS 平台中基于 NSUserDefaults 开发 ;
- 访问本地文件是耗时操作 , 因此访问 shared_preferences 存储是一个 异步操作 ;
- 为简单数据封装平台特定的持久存储(iOS和macOS上的NSUserDefaults, Android上的SharedPreferences,等等)。数据可能会异步持久化到磁盘,并且不能保证写入返回后会持久化到磁盘,所以这个插件不能用于存储关键数据。
添加插件依赖:
- dependencies:
-
- shared_preferences: 2.0.15 #本地存储插件
简单示例:
- 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();
var user = await SharedPreferences.getInstance();
var keys = user.getKeys();
var user = await SharedPreferences.getInstance();
var b = user.containsKey("name");
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。