import 'package:flutter/services.dart';
|
import 'package:makemoney/utils/user_util.dart';
|
import 'package:shared_preferences/shared_preferences.dart';
|
|
import 'ui_constant.dart';
|
|
class DataMethodChannel extends MethodChannel {
|
DataMethodChannel(String name) : super(name) {
|
print("DataMethodChannel初始化");
|
setMethodCallHandler((call) {
|
switch (call.method) {
|
case "getUserInfo":
|
{
|
return UserUtil.getUserInfo();
|
}
|
}
|
return Future.value();
|
});
|
}
|
}
|
|
DataMethodChannel dataMethodChannel = DataMethodChannel('com.yeshi.video/data');
|
|
class MySharedPreferences {
|
static MySharedPreferences? _instance;
|
|
bool native = Constant.NATIVE;
|
|
static MySharedPreferences getInstance() {
|
_instance ??= MySharedPreferences();
|
return _instance!;
|
}
|
|
Future<String?> getString(String key) async {
|
String? value = await _getValue(key);
|
return value;
|
}
|
|
Future<bool?> getBool(String key) async {
|
String? value = await _getValue(key);
|
if (value == null) {
|
return null;
|
}
|
return value as bool;
|
}
|
|
Future<int?> getInt(String key) async {
|
String? value = await _getValue(key);
|
if (value == null) {
|
return null;
|
}
|
return int.parse(value);
|
}
|
|
Future<bool> setString(String key, String value) async {
|
return await _setValue(key, value);
|
}
|
|
Future<bool> setBool(String key, bool value) async {
|
return await _setValue(key, value.toString());
|
}
|
|
Future<bool> setInt(String key, bool value) async {
|
return await _setValue(key, value.toString());
|
}
|
|
Future<bool> remove(String key) async {
|
return await _removeValue(key);
|
}
|
|
Future<bool> _setValue(String key, String? value) async {
|
if (!native) {
|
SharedPreferences _prefs = await SharedPreferences.getInstance();
|
await _prefs.setString(key, value!);
|
return true;
|
} else {
|
String? success = await dataMethodChannel
|
.invokeMethod<String>("setSharedValue", {"key": key, "value": value});
|
print("MySharedPreferences 设置值:$success");
|
if (success != null && success == "1") {
|
return true;
|
}
|
return false;
|
}
|
}
|
|
Future<bool> _removeValue(String key) async {
|
if (!native) {
|
SharedPreferences _prefs = await SharedPreferences.getInstance();
|
await _prefs.remove(key);
|
return true;
|
} else {
|
String? success = await dataMethodChannel.invokeMethod<String>(
|
"removeSharedValue", key);
|
print("MySharedPreferences 删除值:$success");
|
if (success != null && success == "1") {
|
return true;
|
}
|
return false;
|
}
|
}
|
|
Future<String?> _getValue(String key) async {
|
if (!native) {
|
SharedPreferences _prefs = await SharedPreferences.getInstance();
|
String? result = _prefs.getString(key);
|
|
return result;
|
} else {
|
String? result =
|
await dataMethodChannel.invokeMethod<String>("getSharedValue", key);
|
print("MySharedPreferences 获取值:$result");
|
|
return result;
|
}
|
}
|
}
|