import 'package:shared_preferences/shared_preferences.dart'; /// 本地存储管理类 class LocalStorage { static SharedPreferences? _prefs; /// 初始化本地存储 static Future init() async { _prefs ??= await SharedPreferences.getInstance(); } /// 获取 SharedPreferences 实例 static SharedPreferences get prefs { if (_prefs == null) { throw Exception('LocalStorage not initialized. Call LocalStorage.init() first.'); } return _prefs!; } // ==================== String 操作 ==================== /// 保存字符串 static Future setString(String key, String value) async { return await prefs.setString(key, value); } /// 获取字符串 static String? getString(String key, {String? defaultValue}) { return prefs.getString(key) ?? defaultValue; } // ==================== Int 操作 ==================== /// 保存整数 static Future setInt(String key, int value) async { return await prefs.setInt(key, value); } /// 获取整数 static int? getInt(String key, {int? defaultValue}) { return prefs.getInt(key) ?? defaultValue; } // ==================== Double 操作 ==================== /// 保存浮点数 static Future setDouble(String key, double value) async { return await prefs.setDouble(key, value); } /// 获取浮点数 static double? getDouble(String key, {double? defaultValue}) { return prefs.getDouble(key) ?? defaultValue; } // ==================== Bool 操作 ==================== /// 保存布尔值 static Future setBool(String key, bool value) async { return await prefs.setBool(key, value); } /// 获取布尔值 static bool? getBool(String key, {bool? defaultValue}) { return prefs.getBool(key) ?? defaultValue; } // ==================== StringList 操作 ==================== /// 保存字符串列表 static Future setStringList(String key, List value) async { return await prefs.setStringList(key, value); } /// 获取字符串列表 static List? getStringList(String key) { return prefs.getStringList(key); } // ==================== 通用操作 ==================== /// 删除指定 key static Future remove(String key) async { return await prefs.remove(key); } /// 清空所有数据 static Future clear() async { return await prefs.clear(); } /// 检查 key 是否存在 static bool containsKey(String key) { return prefs.containsKey(key); } /// 获取所有 key static Set getKeys() { return prefs.getKeys(); } // ==================== 常用业务方法 ==================== /// 保存 Token static Future saveToken(String token) async { return await setString('auth_token', token); } /// 获取 Token static String? getToken() { return getString('auth_token'); } /// 删除 Token static Future removeToken() async { return await remove('auth_token'); } /// 保存用户信息(JSON 字符串) static Future saveUserInfo(String userInfo) async { return await setString('user_info', userInfo); } /// 获取用户信息 static String? getUserInfo() { return getString('user_info'); } /// 删除用户信息 static Future removeUserInfo() async { return await remove('user_info'); } }