12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- import 'dart:convert';
- import 'package:shared_preferences/shared_preferences.dart';
- class SharedPreferencesUtil {
- // 单例对象
- static final SharedPreferencesUtil _singleton = SharedPreferencesUtil._internal();
- // 私有构造函数
- SharedPreferencesUtil._internal();
- // 工厂构造函数返回单例对象
- factory SharedPreferencesUtil() => _singleton;
- // 获取 SharedPreferences 实例
- Future<SharedPreferences> get _instance async => await SharedPreferences.getInstance();
- // 存储字符串
- Future<void> setString(String key, String value) async {
- final prefs = await _instance;
- prefs.setString(key, value);
- }
- // 读取字符串
- Future<String?> getString(String key) async {
- final prefs = await _instance;
- return prefs.getString(key);
- }
- // 存储JSON数组
- Future<void> setJsonList(String key, List<Map<String, dynamic>> jsonList) async {
- final prefs = await _instance;
- final jsonString = jsonEncode(jsonList);
- prefs.setString(key, jsonString);
- }
- // 读取JSON数组
- Future<List<Map<String, dynamic>>?> getJsonList(String key) async {
- final prefs = await _instance;
- final jsonString = prefs.getString(key);
- return jsonString != null ? List<Map<String, dynamic>>.from(jsonDecode(jsonString)) : null;
- }
- // 存储可以转化为 JSON 的对象
- Future<void> setObject(String key, Map<String, dynamic> jsonValue) async {
- final prefs = await _instance;
- final jsonString = jsonEncode(jsonValue);
- prefs.setString(key, jsonString);
- }
- // 读取 JSON 对象,并返回 Map<String, dynamic>
- Future<Map<String, dynamic>?> getObject(String key) async {
- final prefs = await _instance;
- final jsonString = prefs.getString(key);
- return jsonString != null ? jsonDecode(jsonString) as Map<String, dynamic> : null;
- }
- // 删除指定键的数据
- Future<void> delete(String key) async {
- final prefs = await _instance;
- prefs.remove(key);
- }
- // 删除所有数据
- Future<void> deleteAll() async {
- final prefs = await _instance;
- prefs.clear();
- }
- }
|