Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase 颤振-Admob-仅在一页上显示横幅_Firebase_Flutter_Admob - Fatal编程技术网

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,阻止我的底部选项卡控件

如何防止我的广告出现在第二个屏幕以外的其他地方

谢谢