convert_flutter.dart 1.2 KB

123456789101112131415161718192021222324252627282930
  1. import 'package:ConversionFlutterDemo/models/convert_bean.dart';
  2. import 'package:ConversionFlutterDemo/models/convert_contain_options_bean.dart';
  3. import 'package:ConversionFlutterDemo/states/convert_provider.dart';
  4. import 'package:flutter/cupertino.dart';
  5. import 'package:flutter/services.dart';
  6. import 'package:provider/provider.dart';
  7. class ConvertFlutter {
  8. static const EventChannel _channel =
  9. EventChannel('com.compdfkit.conversion.flutter.convert');
  10. static void convert(BuildContext context, int index, ConvertBean bean,
  11. ConvertOptionsBean optionsBean) {
  12. _channel.receiveBroadcastStream(optionsBean.getOptions(index, bean)).listen((event) {
  13. Map<dynamic, dynamic> result = event;
  14. int updateIndex = int.parse(result['updateIndex']);
  15. int progress = result['progress'];
  16. int status = result['status'];
  17. context
  18. .read<ConvertProvider>()
  19. .updateStatus(updateIndex, progress, status, null);
  20. if (status == convertSuccess) {
  21. print("转档成功:${result['outputPath']}");
  22. context
  23. .read<ConvertProvider>()
  24. .updateStatus(updateIndex, progress, status, result['outputPath']);
  25. }
  26. }, onDone: () {}, onError: (object) {});
  27. }
  28. }