share_preferences.dart 1.7 KB
import 'dart:convert';
import 'package:shared_preferences/shared_preferences.dart';

class SharePreferenceUtils {
  SharePreferenceUtils._internal(); // 工厂函数单例
  static final SharePreferenceUtils _instance = SharePreferenceUtils._internal();

  factory SharePreferenceUtils() {
    return _instance;
  }
  late SharedPreferences _prefs;

  Future<void> init() async {
    _prefs = await SharedPreferences.getInstance();
  }

  Future<bool> setJSON(String key, dynamic jsonVal) {
    String jsonString = jsonEncode(jsonVal);
    return _prefs.setString(key, jsonString);
  }

  dynamic getJSON(String key) {
    String? jsonString = _prefs.getString(key);
    return jsonString == null ? null : jsonDecode(jsonString);
  }

  Future<bool> setInt(String key, int value) {
    return _prefs.setInt(key, value);
  }

  int? getInt(String key) {
    int? temp = _prefs.getInt(key);
    return temp ?? 0;
  }

  bool? getBool(String key) {
    return _prefs.getBool(key);
  }

  Future<bool> setBool(String key, bool val) {
    return _prefs.setBool(key, val);
  }

  Future<bool> setString(String key, String value) {
    return _prefs.setString(key, value);
  }

  String getString(String key) {
    String? str = _prefs.getString(key);
    return str ?? '';
  }




  Future<bool> remove(String key) {
    return _prefs.remove(key);
  }

  //设置token
  static saveToken(String token) async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    return preferences.setString("token", token);
  }

  static Future<String?> getToken() async {
    SharedPreferences preferences = await SharedPreferences.getInstance();
    return preferences.getString("token");
  }

}