share_to_wx_handler.dart 913 Bytes
import 'package:appframe/config/locator.dart';
import 'package:appframe/services/dispatcher.dart';
import 'package:fluwx/fluwx.dart';

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

    String text = params['text'] as String? ?? '';
    String fileUrl = params['fileUrl'] as String? ?? '';
    String fileName = params['fileName'] as String? ?? '';

    try {
      Fluwx fluwx = getIt.get<Fluwx>();
      if (text.isNotEmpty) {
        return await fluwx.share(WeChatShareTextModel(text));
      } else if (fileUrl.isNotEmpty && fileName.isNotEmpty) {
        return await fluwx.share(WeChatShareFileModel(WeChatFile.network(fileUrl), title: fileName));
      } else {
        return false;
      }
    } catch (e) {
      print(e);
      return false;
    }
  }
}