import 'dart:convert';

import 'package:shared_preferences/shared_preferences.dart';


class Storage {

  //存储数据
  static Future<void> set(String key, dynamic value) async {
    SharedPreferences sp = await SharedPreferences.getInstance();
    if (value is String) {
      sp.setString(key, value);
    } else if (value is int) {
      sp.setInt(key, value);
    } else if (value is bool) {
      sp.setBool(key, value);
    } else if (value is double) {
      sp.setDouble(key, value);
    } else if (value is Map) {
      String jsonStr = jsonEncode(value);
      sp.setString(key, jsonStr);
    }
  }

  //获取数据
  static Future<dynamic> get(String key) async {
    SharedPreferences sp = await SharedPreferences.getInstance();
    var value = sp.get(key);
    if (value is String) {
      try {
        return jsonDecode(value);
      } catch (e) {
        return value;
      }
    }
    return value;
  }

  //删除数据
  static Future<void> remove(key) async {
    SharedPreferences sp = await SharedPreferences.getInstance();
    sp.remove(key);
  }

//判断键是否存在
  static Future<bool> hasKey(String key) async {
    SharedPreferences sp = await SharedPreferences.getInstance();
    return sp.containsKey(key);
  }
}
