Flutter Dev نشر 20 فبراير 2021 أرسل تقرير نشر 20 فبراير 2021 السلام عليكم ورحمة الله وبركاته تحيه طيبه للجميع قمت بعمل كلاس منفصل ووضعت فيه اعلانات ادموب من نوع RewardedVideoAd وهو كالتالي: import 'package:firebase_admob/firebase_admob.dart'; import 'helper.dart'; class AdsReward { static bool _loaded = false; static int _coins=0; static RewardedVideoAd videoAd = RewardedVideoAd.instance; static void initialize() { FirebaseAdMob.instance.initialize(appId: AdManager.appId); } static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo( keywords: <String>['flutterio', 'beautiful apps'], testDevices: <String>[], // Android emulators are considered test devices ); static RewardedVideoAd createRewardedVideoAd() { videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo); // videoAd.load(adUnitId:RewardedVideoAd.testAdUnitId, targetingInfo: targetingInfo); RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) { if(event == RewardedVideoAdEvent.rewarded) { _coins+=rewardAmount; print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx$_coins'); } }; } static void showRewardedVideoAd() { if (videoAd == null) videoAd = createRewardedVideoAd(); videoAd .show().catchError((e) => print("error in showing ad: ${e.toString()}")); } } اقوم بستدعاء الكلاس من صفحه مختلفه من خلال AdsReward.showRewardedVideoAd(); الاعلان شغال ولكن المتفرض بعد انتهاء الاعلان احصل على قيمة _coins او بالاصح هيا تحصل على قيمة ولكن الان لا يحدث هذا الامر قمت بمحاولة قراءة ذلك من خلال امر الطباعة ولكن لا يحدث شي ابد هل يعلم احد ما هو الخطاء في الكود الذي عملته ؟ لماذا لا يحدث حدث listeners not called اقتباس
0 بلال زيادة نشر 21 فبراير 2021 أرسل تقرير نشر 21 فبراير 2021 هناك عدة طرق مستخدمة. ممكن تحفظ القيمة عن طريق SharedPrefrence وتجلب قيمة المفتاح. يمكن عن طريق LocalStorage و أيضا يمكن جلب القيمة من المفتاح المخزن. أو عن طريق تنفيذ Setter , Getter ويمكن عن طريق الكود التالي. يمكن تعريف getter int get coinsValue { return coins; } أو بشكل مختصر int get coinsValue => coins; ويمكن أن يكون الكود الخاص بك هكذا import 'package:firebase_admob/firebase_admob.dart'; import 'helper.dart'; //const String testDevice = 'YOUR_DEVICE_ID'; class AdsRewardedVideoAd { static bool _loaded = false; static int coins = 0; int get coinsValue => coins; static RewardedVideoAd videoAd = RewardedVideoAd.instance; static void initialize() { FirebaseAdMob.instance.initialize(appId: AdManager.appId); } static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo( keywords: <String>['flutterio', 'beautiful apps'], testDevices: <String>[], // Android emulators are considered test devices ); static RewardedVideoAd createRewardedVideoAd() { videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo); RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) { if(event == RewardedVideoAdEvent.rewarded) { coins+=rewardAmount; print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $coins'); } }; } static void showRewardedVideoAd() { if (videoAd == null) videoAd = createRewardedVideoAd(); videoAd .show().catchError((e) => print("error in showing ad: ${e.toString()}")); } } ويمكن جلبها عن طريق الكلاس AdsRewardedVideoAd.coinsValue بحيث getter => coinsValue يأخذ قيمة coins عندما تتحدث في أي وقت. لقد أجبتك امس هنا, هل قمت بتجربتها. ارجوا إضافة ملفات المشروع هنا كاملاً للمساعدة في حل المشكلة. 2 اقتباس
0 Flutter Dev نشر 21 فبراير 2021 الكاتب أرسل تقرير نشر 21 فبراير 2021 بتاريخ 7 ساعات قال بلال زيادة: هناك عدة طرق مستخدمة. ممكن تحفظ القيمة عن طريق SharedPrefrence وتجلب قيمة المفتاح. يمكن عن طريق LocalStorage و أيضا يمكن جلب القيمة من المفتاح المخزن. أو عن طريق تنفيذ Setter , Getter ويمكن عن طريق الكود التالي. يمكن تعريف getter int get coinsValue { return coins; } أو بشكل مختصر int get coinsValue => coins; ويمكن أن يكون الكود الخاص بك هكذا import 'package:firebase_admob/firebase_admob.dart'; import 'helper.dart'; //const String testDevice = 'YOUR_DEVICE_ID'; class AdsRewardedVideoAd { static bool _loaded = false; static int coins = 0; int get coinsValue => coins; static RewardedVideoAd videoAd = RewardedVideoAd.instance; static void initialize() { FirebaseAdMob.instance.initialize(appId: AdManager.appId); } static MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo( keywords: <String>['flutterio', 'beautiful apps'], testDevices: <String>[], // Android emulators are considered test devices ); static RewardedVideoAd createRewardedVideoAd() { videoAd.load(adUnitId: AdManager.rewardedAdUnitId, targetingInfo: targetingInfo); RewardedVideoAd.instance.listener = (RewardedVideoAdEvent event, {String rewardType, int rewardAmount}) { if(event == RewardedVideoAdEvent.rewarded) { coins+=rewardAmount; print('xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx $coins'); } }; } static void showRewardedVideoAd() { if (videoAd == null) videoAd = createRewardedVideoAd(); videoAd .show().catchError((e) => print("error in showing ad: ${e.toString()}")); } } ويمكن جلبها عن طريق الكلاس AdsRewardedVideoAd.coinsValue بحيث getter => coinsValue يأخذ قيمة coins عندما تتحدث في أي وقت. لقد أجبتك امس هنا, هل قمت بتجربتها. ارجوا إضافة ملفات المشروع هنا كاملاً للمساعدة في حل المشكلة. مرحبا اخي الكريم المشكله الان ان الكود لا يصل الى ميثود RewardedVideoAdEvent لا يوجد لديها اي قيمة لنها لا تعمل هذا نوع المشكلة في الكود اعلاه حتى لو قمت بتجربة سوف تشاهد ان العمل لا يصال الى RewardedVideoAdEvent حتى نحصل على حدث اقتباس
0 بلال زيادة نشر 22 فبراير 2021 أرسل تقرير نشر 22 فبراير 2021 بتاريخ 19 ساعات قال مروان مروان3: مرحبا اخي الكريم المشكله الان ان الكود لا يصل الى ميثود RewardedVideoAdEvent لا يوجد لديها اي قيمة لنها لا تعمل هذا نوع المشكلة في الكود اعلاه حتى لو قمت بتجربة سوف تشاهد ان العمل لا يصال الى RewardedVideoAdEvent حتى نحصل على حدث مرحبا هل ممكن ترفق ملفات المشروع, أريد فحص المشروع لحل المشكلة. 1 اقتباس
0 Flutter Dev نشر 22 فبراير 2021 الكاتب أرسل تقرير نشر 22 فبراير 2021 بتاريخ 5 ساعات قال بلال زيادة: مرحبا هل ممكن ترفق ملفات المشروع, أريد فحص المشروع لحل المشكلة. خلاص اخي الله يطول بعمرك انا فصلت هذه الصفحه ووضعت الاعلان كامل او كود الاعلان كامل في الصفحه المستهدفة كل الشكر لك الغالي اقتباس
السؤال
Flutter Dev
السلام عليكم ورحمة الله وبركاته
تحيه طيبه للجميع
قمت بعمل كلاس منفصل ووضعت فيه اعلانات ادموب من نوع RewardedVideoAd وهو كالتالي:
اقوم بستدعاء الكلاس من صفحه مختلفه من خلال
الاعلان شغال ولكن المتفرض بعد انتهاء الاعلان احصل على قيمة _coins او بالاصح هيا تحصل على قيمة
ولكن الان لا يحدث هذا الامر قمت بمحاولة قراءة ذلك من خلال امر الطباعة ولكن لا يحدث شي ابد
هل يعلم احد ما هو الخطاء في الكود الذي عملته ؟
لماذا لا يحدث حدث listeners not called
4 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.