flutter local storage data (shared_preferences)

1. Introduction to shared_preferences local storage plugin

  1. shared_preferences is a local data access plug-in provided by Flutter;
  2. On different platforms, develop based on different mechanisms, such as Android platform based on SharedPreferences development, iOS platform based on NSUserDefaults development;
  3. Accessing local files is a time-consuming operation, so accessing shared_preferences storage is an asynchronous operation;
  4. Encapsulate platform-specific persistent storage for simple data (NSUserDefaults on iOS and macOS, SharedPreferences on Android, etc.). Data may be persisted to disk asynchronously, and there is no guarantee that it will persist to disk after the write returns, so this plugin cannot be used to store critical data.

accomplish:

Add plugin dependencies:

dependencies:

  shared_preferences: 2.0.15 #本地存储插件

Simple example:

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());
  }
}

Call method:

             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");

basic use

Supported data types

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

data input 

var user = await SharedPreferences.getInstance(); //Initialize
user .setString("name", "Zhang San");
user .setInt("age", 22);
user .setBool("sex", true);
user .setDouble("height", 177.7);
user .setStringList("address", <String>["Shijiazhuang", "Changan District"]);

 read data 

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");

 

delete data 

 delete a data

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

delete all data 

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

 Get all keys


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

Does the key exist?


var user = await SharedPreferences.getInstance();
var b = user.containsKey("name"); 

Guess you like

Origin blog.csdn.net/f234344435/article/details/126969104