storage_handler.dart 1.21 KB
import 'package:appframe/config/locator.dart';
import 'package:appframe/services/dispatcher.dart';
import 'package:shared_preferences/shared_preferences.dart';

class SetStorageSyncHandler extends MessageHandler {
  @override
  Future<dynamic> handleMessage(dynamic params) async {
    if (params is! Map<String, dynamic>) {
      throw Exception('参数错误');
    }

    var key = params['key'];
    var value = params['value'];

    if (key is! String || value is! String || key.isEmpty) {
      throw Exception('参数错误');
    }

    try {
      return await getIt.get<SharedPreferences>().setString(key, value);
    } catch (e) {
      throw Exception(e.toString());
    }
  }
}

class GetStorageSyncHandler extends MessageHandler {
  @override
  Future<dynamic> handleMessage(dynamic params) async {
    if (params is! String || params.isEmpty) {
      throw Exception('参数错误');
    }

    try {
      return getIt.get<SharedPreferences>().getString(params) ?? "";
    } catch (e) {
      throw Exception(e.toString());
    }
  }
}

class ClearStorageSyncHandler extends MessageHandler {
  @override
  Future<dynamic> handleMessage(dynamic params) async {
    return await getIt.get<SharedPreferences>().clear();
  }
}