share_handler.dart 1.15 KB
import 'package:appframe/config/locator.dart';
import 'package:appframe/services/dispatcher.dart';
import 'package:fluwx/fluwx.dart';

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

    var weapp = params['weapp'] as Map<String, dynamic>?;

    try {
      Fluwx fluwx = getIt.get<Fluwx>();
      return await fluwx.share(WeChatShareMiniProgramModel(
        title: weapp?['title'] as String,
        webPageUrl: weapp?['imageUrl'] as String,
        path: weapp?['path'] as String,
        userName: weapp?['appid'] as String,
        miniProgramType: _getWXMiniProgramType(weapp?['envVersion'] as String?),
      ));
    } catch (e) {
      print(e);
      return false;
    }
  }

  WXMiniProgramType _getWXMiniProgramType(String? envVersion) {
    switch (envVersion) {
      case 'release':
        return WXMiniProgramType.release;
      case 'trial':
        return WXMiniProgramType.preview;
      case 'develop':
        return WXMiniProgramType.test;
      default:
        return WXMiniProgramType.preview;
    }
  }
}