什么是shared_preferences?
shared_preferences是Flutter社區開發的一個本地數據存取插件,它有以下特性:
1.簡單的,異步的,持久化的key-value存儲系統;
2.在Android上它是基于SharedPreferences的;
3.在iOS上它是基于NSUserDefaults的;
shared_preferences如何使用?
在pubspec.yaml 中添加
# 數據存儲????????shared_preferences: ^0.5.12+4
封裝代碼如下:
import 'package:shared_preferences/shared_preferences.dart';
///
/// SharedPreferences 存儲封裝
///
class SpDataUtils {
static setDate(String key, value)async {
SharedPreferences prefs =await SharedPreferences.getInstance();
? ? if (valueis String) {
????prefs.setString(key, value);
? ? }else if (valueis num) {
????prefs.setInt(key, value);
? ? }else if (valueis double) {
????prefs.setDouble(key, value);
? ? }else if (valueis bool) {
????prefs.setBool(key, value);
? ? }else if (valueis List) {
????prefs.setStringList(key, value.cast());
? ? }
}
/// 返回數據data -> replace -> null
? static FuturegetData(String key, [dynamic replace])async {
? ?SharedPreferences prefs =await SharedPreferences.getInstance();
? ? var data = prefs.get(key);
? ? return data ?? replace ??null;
? }
///刪除指定數據
? static void remove(String key)async {
? ?SharedPreferences prefs =await SharedPreferences.getInstance();
? ? prefs.remove(key); //刪除指定鍵
? }
///清除數據
? static void clear()async {
? ?SharedPreferences prefs =await SharedPreferences.getInstance();
? ? prefs.clear(); ////清空緩存
? }
}
使用:
取值:
SpDataUtils.getData('isSplash',false).then((result){
});
設置值
SpDataUtils.setDate('isSplash', true);