1

在我的应用运行时,我多次尝试显示插页式广告。我已经阅读了关于它的 admob 文档,它似乎是一个一次性使用的对象,我想知道是否有任何解决方法。任何帮助将不胜感激。谢谢

4

1 回答 1

0

我知道这个问题是大约 8 年前的问题,但我遇到了同样的问题。什么对我有用:

import 'package:firebase_admob/firebase_admob.dart';

InterstitialAd _interstitialAd;
bool _isInterstitialAdReady;

void prepAd(){
  initState();
  _loadInterstitialAd();
}

void runAd() {
  _interstitialAd.show();
}

void initState() {
  _isInterstitialAdReady = false;
  _interstitialAd = InterstitialAd(
    adUnitId: InterstitialAd.testAdUnitId,
    listener: _onInterstitialAdEvent,
  );
}


void _loadInterstitialAd() {
  _interstitialAd.load();
}
// TODO: Implement _onInterstitialAdEvent()
void _onInterstitialAdEvent(MobileAdEvent event) {
  switch (event) {
    case MobileAdEvent.loaded:
      _isInterstitialAdReady = true;
      break;
    case MobileAdEvent.failedToLoad:
      _isInterstitialAdReady = false;
      print('Failed to load an interstitial ad');
      break;
    case MobileAdEvent.closed:
      dispose();
      prepAd();
      break;
    default:
    // do nothing
  }
}

void dispose() {// TODO: Dispose InterstitialAd object
  _interstitialAd?.dispose();
}

我一开始就跑了prepAd()一次,然后就runAd()在我需要的时候跑了。如果你愿意,你可以检查_isInterstitialAdReady == true里面runAd()

于 2020-10-21T13:34:19.873 回答