Admob 横幅,如何仅在主页上显示

标签 admob flutter

我成功地在页脚上显示智能横幅,然后将其处理掉。我的问题是显示在应用程序的所有页面上。

我的问题是:如何只显示在一页上?

@override
 void initState() {
   super.initState();
   myBanner
   ..load().then((loaded) {
     if (loaded && this.mounted) {
       myBanner..show();
     }
   });

 }

最佳答案

我从 Github 链接 here 找到了可行的解决方案.这个想法很简单。

  1. 首先,您需要一个 Ads 助手类。您可以点击链接或查看下文。
  2. 在您要展示广告的页面的 initState() 内调用 showBannerAd
  3. 在推送页面后调用 showBannerAd,如下所示。这将在您从推送的页面返回后再次显示广告。
Navigator.push(context, MaterialPageRoute(builder: (context) => EditPage())).then((value) {
                      Ads.showBannerAd();
                    });
  1. 在您不想展示广告的推送页面上,在 initState() 内调用 hideBannanderAd。然后你就完成了。

我的广告助手类

import 'package:firebase_admob/firebase_admob.dart';

const String testDevice = 'YOUR_DEVICE_ID';

class Ads {
  static BannerAd _bannerAd;

  static void initialize() {
    FirebaseAdMob.instance.initialize(appId: FirebaseAdMob.testAppId);
  }

  static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
    testDevices: testDevice != null ? <String>[testDevice] : null,
    keywords: <String>['foo', 'bar'],
    contentUrl: 'http://foo.com/bar.html',
    childDirected: true,
    nonPersonalizedAds: true,
  );

  static BannerAd _createBannerAd() {
    return BannerAd(
      adUnitId: BannerAd.testAdUnitId,
      size: AdSize.banner,
      targetingInfo: targetingInfo,
      listener: (MobileAdEvent event) {
        print("BannerAd event $event");
      },
    );
  }

  static void showBannerAd() {
    if (_bannerAd == null) _bannerAd = _createBannerAd();
    _bannerAd
      ..load()
      ..show(anchorOffset: 0.0, anchorType: AnchorType.bottom);
  }

  static void hideBannerAd() async {
    await _bannerAd.dispose();
    _bannerAd = null;
  }
}

关于Admob 横幅,如何仅在主页上显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50972863/

相关文章:

flutter - 在flutter应用程序中显示git上次提交哈希和当前分支/标签

ios - 为什么在将现有的原生项目与flutter代码结合时使用模块模板?

android - 您真的需要检查 Google Play 服务才能使用 AdMob 吗?

android - 在 Android 中测试 AdMob 广告

jquery-mobile - 是否可以在 jQueryMobile 多页面布局响应式网站中使用任何 Google AdSense 版本?

android - NoSuchMethodError,迭代器调用为null

flutter - Dart 中的常量构造函数和函数

android - 为什么 admob 智能横幅在横向模式下不显示?

flutter - 将 GDPR 同意对话框添加到 Flutter 应用程序

android - 关于Flutter中的Gradle和Android平台