Parcourir la source

[new]修复广告未正确回调监听问题

zk il y a 1 an
Parent
commit
f8a1f0355e
1 fichiers modifiés avec 6 ajouts et 2 suppressions
  1. 6 2
      lib/src/utils/flutter_ad_listener_method_channel_helper.dart

+ 6 - 2
lib/src/utils/flutter_ad_listener_method_channel_helper.dart

@@ -1,4 +1,5 @@
 import 'package:flutter/services.dart';
+import 'package:flutter/widgets.dart';
 import 'package:flutter_ad/src/constants/flutter_method.dart';
 import 'package:flutter_ad/src/listener/atmob_ad_listener.dart';
 import 'package:flutter_ad/src/listener/reward_video_ad_listener.dart';
@@ -14,7 +15,7 @@ class FlutterAdListenerMethodChannelHelper {
     if (listener == null) {
       return;
     }
-    _adListenerMap.addAll({adFuncId: listener});
+    _adListenerMap[adFuncId] = listener;
   }
 
   static void setMethodChannel(MethodChannel channel) {
@@ -24,10 +25,11 @@ class FlutterAdListenerMethodChannelHelper {
   }
 
   static Future<dynamic> _platformCallHandler(MethodCall call) async {
+    debugPrint(
+        "FlutterAdListenerMethodChannelHelper:method= ${call.method}, adFuncId= ${call.arguments["adFuncId"]}");
     if (call.method == FlutterAdMethod.flutterAdMethod) {
       final String adFuncId = call.arguments["adFuncId"];
       final AtmobAdListener? listener = _adListenerMap[adFuncId];
-      _adListenerMap.remove(adFuncId);
       if (listener == null) {
         return;
       }
@@ -37,12 +39,14 @@ class FlutterAdListenerMethodChannelHelper {
           break;
         case FlutterListenerMethod.onFail:
           listener.onFail(call.arguments["failMsg"]);
+          _adListenerMap.remove(adFuncId);
           break;
         case FlutterListenerMethod.onClick:
           listener.onClick();
           break;
         case FlutterListenerMethod.onClose:
           listener.onClose();
+          _adListenerMap.remove(adFuncId);
           break;
         case FlutterListenerMethod.onRewarded:
           if (listener is RewardVideoAdListener) listener.onRewarded();