Flutter 封装存储数据
什么是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);