storage_handler.dart 1.07 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(Map<String, dynamic> params) async {
    final key = params['key'];
    final value = params['value'];

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

    bool result = await getIt.get<SharedPreferences>().setString(key, value);
    return result;
  }
}

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

    String? value = getIt.get<SharedPreferences>().getString(key);
    return value ?? "";
  }
}

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