我正在使用插件:firebase_admob:^ 0.9.3 + 4 我只想在PageView的特定页面上加载广告。当用户移动到另一个页面时,我希望放置广告。但是,我遇到了一个问题,即只有在广告已经加载并显示的情况下,广告才会被处置。否则,它将加载并显示在新标签上。
如何阻止尚未加载的广告加载?
这是代码:
MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: <String>['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
birthday: DateTime.now(),
childDirected: false,
designedForFamilies: false,
gender: MobileAdGender.male,
testDevices: <String>[],
);
BannerAd myBanner = BannerAd(
adUnitId: BannerAd.testAdUnitId,
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
print("BannerAd event is $event");
},
);
myBanner
..load()
..show(
anchorOffset: 60.0,
horizontalCenterOffset: 10.0,
anchorType: AnchorType.bottom,
);
在页面的dispose方法中,我调用以下函数:
@override
void dispose() {
disposeAds();
super.dispose();
}
void disposeAds()async{
_banner?.dispose();
_banner=null;
}
我想知道的是如何防止在处理页面后加载广告?在iOS上似乎可以自动执行此操作,但在Android上则不会。
答案 0 :(得分:0)
您可以使用admob_flutter
此软件包可在小部件中转换您的Admob横幅
AdmobBanner(
adUnitId: AdManager.bannerAdUnitId,
adSize: AdmobBannerSize.BANNER,
));
然后,您可以像使用任何其他小部件一样使用
Container getBanner() {
return new Container(
decoration: BoxDecoration(border: Border.all(color: Colors.black)),
child: AdmobBanner(
adUnitId: AdManager.bannerAdUnitId,
adSize: AdmobBannerSize.BANNER,
));
}