init method

  1. @override
Future<bool> init(
  1. String appId
)
override

Implementation

@override
Future<bool> init(String appId) async {
  // 设置支付结果监听
  methodChannel.setMethodCallHandler((call) async {
    if (call.method == _callbackChannelIap) {
      final args = (call.arguments as Map).cast<String, dynamic>();
      debugPrint('支付结果状态:$args');
      final int state = args['state'] ?? -1;
      final msg = args['message'] ?? '';
      final Map<String, dynamic>? data = (args['data'] as Map?)
          ?.cast<String, dynamic>();

      switch (state) {
        case 0: //成功
          _payCallback?.onPay(PayState.success, msg, data);
          debugPrint('支付结果:成功');
          break;
        case 1: //失败
          _payCallback?.onPay(PayState.failed, msg, data);
          debugPrint('支付结果:失败');
          break;
        case 2: //取消
          _payCallback?.onPay(PayState.cancel, msg, data);
          debugPrint('支付结果:取消');
          break;
        default:
          _payCallback?.onPay(PayState.pending, msg, data);
          debugPrint('支付结果:处理中');
      }
    } else if (call.method == _callbackChannelAd) {
      final args = (call.arguments as Map).cast<String, dynamic>();
      final String adType = args['adType'] ?? '';
      AdCallback? _adCallback;

      if (adType == 'reward') {
        _adCallback = _adCallback1;
      } else if (adType == 'inter') {
        _adCallback = _adCallback2;
      } else if (adType == 'platformView') {
        _adCallback = _adCallback3;
      }

      final int callbackType = args['callbackType'] ?? -1;

      debugPrint('广告回调 $adType : $callbackType');
      switch (callbackType) {
        case 0:
          _adCallback?.adLoaded();
          break;
        case 1:
          final code = args['code'];
          final msg = args['message'];
          _adCallback?.adLoadFaild(code, msg);
          break;
        case 2:
          _adCallback?.adShowed();
          break;
        case 3:
          _adCallback?.adRewarded();
          break;
        case 4:
          _adCallback?.adClose();
          break;
        case 5:
          _adCallback?.adClick();
          break;
        case 6:
          _adCallback?.adSkip();
          break;
        case 7:
          _adCallback?.adDislike();
          break;
      }
    }
  });
  return await methodChannel.invokeMethod<bool>('init', {'appId': appId}) ??
      false;
}