Flutter本地存储shared_preferences

shared_preferences

shared_preferences 是 Flutter 提供的 key-value 存储插件,能够将数据持久化到磁盘中。在android 上封装的是SharedPreferences,在 iOS 上封装的是 NSUserDefault。

使用

安装

 shared_preferences: ^0.5.4+3

要使用 shared_preferences 需要首先拿到 instance,提供了 getInstance() 方法:

import 'package:shared_preferences/shared_preferences.dart';
SharedPreferences prefs = await SharedPreferences.getInstance();

存储
SharedPreferences 提供了 setInt、setBool、setString 和 setStringList 等方法,用来设置特定类型的数据。

 static set(String key, value) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    if (value is String) {
      prefs.setString(key, value);
    } else if (value is num) {
      prefs.setInt(key, value);
    } else if (value is double) {
      prefs.setDouble(key, value);
    } else if (value is bool) {
      prefs.setBool(key, value);
    } else if (value is List) {
      prefs.setStringList(key, value.cast());
    }
  }

获取
SharedPreferences 提供了get 方法,除此之外,和 set 类似,还提供了getString / getInt / getDouble 等方法。

  /// 返回数据data -> replace -> null
  static get(String key, [dynamic replace]) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    var data = prefs.get(key);
    return data ?? replace ?? null;
  }

移除

 static remove(String key) async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.remove(key);
  }

  static removeAll() async {
    SharedPreferences prefs = await SharedPreferences.getInstance();
    prefs.clear();
  }

辅助方法
getKeys、containsKey,用于获取所有的 key 或者判断是否存在 key。

你可能感兴趣的:(Flutter本地存储shared_preferences)