51 lines
1.2 KiB
Dart
51 lines
1.2 KiB
Dart
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);
|
|
}
|
|
}
|