Firebase 颤振-Admob-仅在一页上显示横幅
我只想在一页上显示我的广告横幅,没有其他内容 目前,当我点击我的页面并立即返回时,我的广告被加载并显示在我的主页上 我会用以下方法部分修复此问题: 第二屏Firebase 颤振-Admob-仅在一页上显示横幅,firebase,flutter,admob,Firebase,Flutter,Admob,我只想在一页上显示我的广告横幅,没有其他内容 目前,当我点击我的页面并立即返回时,我的广告被加载并显示在我的主页上 我会用以下方法部分修复此问题: 第二屏 @override void initState() { super.initState(); FirebaseAdMobService().showBannerAd(); } @override dispose() async { FirebaseAdMobService().hideBannerAd(); super.
@override
void initState() {
super.initState();
FirebaseAdMobService().showBannerAd();
}
@override
dispose() async {
FirebaseAdMobService().hideBannerAd();
super.dispose();
}
广告服务
import 'package:firebase_admob/firebase_admob.dart';
import 'package:flutter/foundation.dart';
class FirebaseAdMobService {
static final FirebaseAdMobService _singleton = FirebaseAdMobService._internal();
FirebaseAdMobService._internal();
factory FirebaseAdMobService() {
return _singleton;
}
BannerAd _adBanner;
bool _hide = false;
init() async {
await FirebaseAdMob.instance.initialize(appId: "...");
}
static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: <String>['foo', 'bar'],
childDirected: true,
nonPersonalizedAds: true,
);
BannerAd _createBannerAd() {
return BannerAd(
adUnitId: kReleaseMode ? "..." : BannerAd.testAdUnitId,
size: AdSize.banner,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
print("BannerAd event $event");
},
);
}
void showBannerAd() {
_hide = false;
Future.delayed(const Duration(seconds: 2), () {
if (_hide) {
return;
}
if (_adBanner == null) {
_adBanner = _createBannerAd();
}
_adBanner.load().then((loaded) {
_adBanner.show(anchorType: AnchorType.bottom);
_hide = false;
});
});
}
void hideBannerAd() async {
_hide = true;
await _adBanner?.dispose();
_adBanner = null;
}
}
import'包:firebase_admob/firebase_admob.dart';
进口“包装:颤振/基础.dart”;
类FireBaseAdObservice{
静态最终FirebaseAdMobService _singleton=FirebaseAdMobService._internal();
FireBaseAdObservice._internal();
factory FireBaseAdObservice(){
返回单件;
}
班纳拉德·阿德班纳;
bool\u hide=false;
init()异步{
等待FirebaseAdMob.instance.initialize(appId:“…”);
}
静态常量MobileAdTargetingInfo targetingInfo=MobileAdTargetingInfo(
关键词:['foo','bar'],
对,,
非人格化爸爸:没错,
);
BannerAd_createBannerAd(){
返回横幅(
adUnitId:kReleaseMode?”…“:bannarad.testAdUnitId,
大小:AdSize.banner,
targetingInfo:targetingInfo,
侦听器:(MobileAdEvent事件){
打印(“BannerAd事件$event”);
},
);
}
void showBannerAd(){
_隐藏=假;
未来。延迟(常数持续时间(秒:2),(){
如果(隐藏){
返回;
}
如果(_adBanner==null){
_adBanner=_createBannerAd();
}
_adBanner.load()。然后((已加载){
_显示(anchorType:anchorType.bottom);
_隐藏=假;
});
});
}
void hideBannerAd()异步{
_隐藏=真实;
等待?adBanner?.dispose();
_adBanner=null;
}
}
这样,我的广告将在2秒后显示,但如果您对广告显示计时(2秒后按back仅),广告将显示在主页上。。。使用我的UI,阻止我的底部选项卡控件
如何防止我的广告出现在第二个屏幕以外的其他地方
谢谢