程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Flutter:检测来自不同小部件的 onRewardedAdUserEarnedReward大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决Flutter:检测来自不同小部件的 onReWARDedAdUserEarnedReWARD

开发过程中遇到Flutter:检测来自不同小部件的 onReWARDedAdUserEarnedReWARD的问题如何解决?下面主要结合日常开发的经验,给出你关于Flutter:检测来自不同小部件的 onReWARDedAdUserEarnedReWARD的解决方法建议,希望对你解决Flutter:检测来自不同小部件的 onReWARDedAdUserEarnedReWARD有所启发或帮助;

我正在使用 https://pub.dev/packages/google_mobile_ads

这是我的广告状态提供商:

getReWARDedAd() {
    if (_reWARDedAd == null) {
      _reWARDedAd ??= ReWARDedAd(
        adUnitID: ReWARDedAd.testAdUnitID,request: request,Listener: AdListener(
            onAdLoaded: (Ad ad) {
              print('${ad.runtimeTypE} loaded.');
              _reWARDedReady = true;
            },onAdFailedToload: (Ad ad,LoadAdError error) {
              print('${ad.runtimeTypE} Failed to load: $error');
              ad.dispose();
              _reWARDedAd = null;
              getReWARDedAd();
            },onAdopened: (Ad ad) => print('${ad.runtimeTypE} onAdopened.'),onAdClosed: (Ad ad) {
              print('${ad.runtimeTypE} closed.');
              ad.dispose();
              getReWARDedAd();
            },onApplicationExit: (Ad ad) =>
                print('${ad.runtimeTypE} onApplicationExit.'),onReWARDedAdUserEarnedReWARD:
                (ReWARDedAd ad,ReWARDItem reWARD) {
               // REWARDED
            }),)..load();
    }

    return _reWARDedAd;
  }

  showReWARDedAd() {
    if (_reWARDedAd == null) return;
    _reWARDedAd!.show();
    _reWARDedReady = false;
    _reWARDedAd = null;
  }

这是我从中调用视频的另一个小部件/页面/类:

Platformbutton(
              onpressed: () async {
                await loading.load(
                  context,translate('loads.loading_vIDeo'),);
                ProvIDer.of<AdState>(context,Listen: falsE).showReWARDedAd();
                loading.cancel();
              },child: PlatformText(translate('reWARD_vIDeo.watch')),material: (_,__) => MaterialRaisedbuttonData(
                color: theme.of(context).priMarycolorDark,textcolor: colors.white,),cuperTino: (_,__) => CuperTinobuttonData(),

使用 firebase_admob 时,我直接从我正在测试的小部件中检测到了这样的奖励视频:

// olD firebase_admob IMPLEMENTATION
@overrIDe
  voID initState() {
    ads.myVIDeo.Listener =
            (reWARDedvideoadEvent event,{String reWARDType,int reWARDamount}) {
          if (event == reWARDedvideoadEvent.loaded) {
            loading.cancel();
            ads.showVIDeo();
          }
          if (event == reWARDedvideoadEvent.reWARDed) {
            // reWARDed!
          }
        };
       super.initState();
  }

现在有了这个新库,我不确定如何从这里听取这些更改,文档没有提供太多关于此的信息。 当我尝试执行类似于上面的代码的操作时,它说 'onReWARDedAdUserEarnedReWARD' can't be used as a setter because it's final.'Listener' can't be used as a setter because it's final.

解决方法

这里有一个新的谷歌移动广告实施示例

ReWARDedAd _reWARDedAd;

void loadVideoAd() async {
    _reWARDedAd = ReWARDedAd(
      adUnitId: AdManager.reWARDedAdUnitId,request: Adrequest(),listener: AdListener(
        onAdLoaded: (Ad ad) {
          _reWARDedAd.show();
        },onAdFailedToLoad: (Ad ad,LoadAdError error) {
          ad.dispose();
          _reWARDedAd = null;
        },onAdClosed: (Ad ad) {
          ad.dispose();
        },onApplicationExit: (Ad ad) =>
            print('${ad.runtimeTypE} onApplicationExit.'),onReWARDedAdUserEarnedReWARD: (ReWARDedAd ad,ReWARDItem reWARD) {
          HomeScreen(reWARDamount: reWARD.amount);
        },),);

    _reWARDedAd.load();
  }

class HomeScreen extends StatefulWidget {
  final int reWARDamount;

  HomeScreen({Key key,this.reWARDamount}) : super(key: key);

  @override
  HomeScreenState createState() => HomeScreenState();
}

要将其传递给其他班级,只需将“reWARD.amount”传递给另一个班级即可。 也许如果您提供有关代码的更多详细信息,我可以帮助您。

大佬总结

以上是大佬教程为你收集整理的Flutter:检测来自不同小部件的 onRewardedAdUserEarnedReward全部内容,希望文章能够帮你解决Flutter:检测来自不同小部件的 onRewardedAdUserEarnedReward所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: