调整 广告逻辑
This commit is contained in:
143
lib/flutter_union_ad_stream.dart
Normal file
143
lib/flutter_union_ad_stream.dart
Normal file
@@ -0,0 +1,143 @@
|
||||
import 'dart:async';
|
||||
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
import 'flutter_union_ad.dart';
|
||||
|
||||
/// @Description: dart类作用描述
|
||||
const EventChannel tencentAdEventEvent =
|
||||
EventChannel("com.example.union_ad_ssgf/adevent");
|
||||
|
||||
class FlutterUnionAdStream {
|
||||
///
|
||||
/// # 注册stream监听原生返回的信息
|
||||
/// [rewardAdCallBack] 激励广告回调
|
||||
/// [interactionAdCallBack] 插屏广告回调
|
||||
///
|
||||
static StreamSubscription initAdStream(
|
||||
{FlutterUnionAdRewardCallBack? flutterTencentadRewardCallBack,
|
||||
FlutterUnionAdInteractionCallBack? flutterTencentadInteractionCallBack}) {
|
||||
StreamSubscription _adStream =
|
||||
tencentAdEventEvent.receiveBroadcastStream().listen((data) {
|
||||
switch (data[FlutterUnionAdCode.adType]) {
|
||||
///激励广告
|
||||
case FlutterUnionAdCode.rewardAd:
|
||||
switch (data[FlutterTencentadMethod.onAdMethod]) {
|
||||
case FlutterTencentadMethod.onShow:
|
||||
if (flutterTencentadRewardCallBack?.onShow != null) {
|
||||
flutterTencentadRewardCallBack?.onShow!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onClose:
|
||||
if (flutterTencentadRewardCallBack?.onClose != null) {
|
||||
flutterTencentadRewardCallBack?.onClose!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onFail:
|
||||
if (flutterTencentadRewardCallBack?.onFail != null) {
|
||||
flutterTencentadRewardCallBack?.onFail!(
|
||||
data["code"], data["message"]);
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onClick:
|
||||
if (flutterTencentadRewardCallBack?.onClick != null) {
|
||||
flutterTencentadRewardCallBack?.onClick!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onVerify:
|
||||
if (flutterTencentadRewardCallBack?.onVerify != null) {
|
||||
flutterTencentadRewardCallBack?.onVerify!(
|
||||
data["transId"], data["rewardName"], data["rewardAmount"]);
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onFinish:
|
||||
if (flutterTencentadRewardCallBack?.onFinish != null) {
|
||||
flutterTencentadRewardCallBack?.onFinish!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onReady:
|
||||
if (flutterTencentadRewardCallBack?.onReady != null) {
|
||||
flutterTencentadRewardCallBack?.onReady!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onUnReady:
|
||||
if (flutterTencentadRewardCallBack?.onUnReady != null) {
|
||||
flutterTencentadRewardCallBack?.onUnReady!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onExpose:
|
||||
if (flutterTencentadRewardCallBack?.onExpose != null) {
|
||||
flutterTencentadRewardCallBack?.onExpose!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onECPM:
|
||||
if (flutterTencentadRewardCallBack?.onECPM != null) {
|
||||
flutterTencentadRewardCallBack?.onECPM!(
|
||||
data["ecpmLevel"], data["ecpm"]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
|
||||
///插屏广告
|
||||
case FlutterUnionAdCode.interactAd:
|
||||
switch (data[FlutterTencentadMethod.onAdMethod]) {
|
||||
case FlutterTencentadMethod.onShow:
|
||||
if (flutterTencentadInteractionCallBack?.onShow != null) {
|
||||
flutterTencentadInteractionCallBack?.onShow!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onClose:
|
||||
if (flutterTencentadInteractionCallBack?.onClose != null) {
|
||||
flutterTencentadInteractionCallBack?.onClose!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onFail:
|
||||
if (flutterTencentadInteractionCallBack?.onFail != null) {
|
||||
flutterTencentadInteractionCallBack?.onFail!(
|
||||
data["code"], data["message"]);
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onClick:
|
||||
if (flutterTencentadInteractionCallBack?.onClick != null) {
|
||||
flutterTencentadInteractionCallBack?.onClick!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onExpose:
|
||||
if (flutterTencentadInteractionCallBack?.onExpose != null) {
|
||||
flutterTencentadInteractionCallBack?.onExpose!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onReady:
|
||||
if (flutterTencentadInteractionCallBack?.onReady != null) {
|
||||
flutterTencentadInteractionCallBack?.onReady!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onUnReady:
|
||||
if (flutterTencentadInteractionCallBack?.onUnReady != null) {
|
||||
flutterTencentadInteractionCallBack?.onUnReady!();
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onVerify:
|
||||
if (flutterTencentadInteractionCallBack?.onVerify != null) {
|
||||
flutterTencentadInteractionCallBack?.onVerify!(
|
||||
data["transId"], "", 0);
|
||||
}
|
||||
break;
|
||||
case FlutterTencentadMethod.onECPM:
|
||||
if (flutterTencentadInteractionCallBack?.onECPM != null) {
|
||||
flutterTencentadInteractionCallBack?.onECPM!(
|
||||
data["ecpmLevel"], data["ecpm"]);
|
||||
}
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
});
|
||||
return _adStream;
|
||||
}
|
||||
|
||||
static void deleteAdStream(StreamSubscription stream) {
|
||||
stream.cancel();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user