clipboard_data_handler.dart 782 Bytes
import 'package:appframe/services/dispatcher.dart' as dispatcher;
import 'package:flutter/services.dart';

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

    try {
      await Clipboard.setData(ClipboardData(text: params));
      return true;
    } catch (e) {
      throw Exception(e.toString());
    }
  }
}

class GetClipboardDataHandler extends dispatcher.MessageHandler {
  @override
  Future<dynamic> handleMessage(dynamic params) async {
    try {
      ClipboardData? data = await Clipboard.getData('text/plain');
      return data?.text ?? '';
    } catch (e) {
      throw Exception(e.toString());
    }
  }
}