init method
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;
}