Почему мое промежуточное объявление не отображается в Flutter?

#flutter #admob #ads

Вопрос:

Я изо всех сил пытаюсь найти ошибки в своем коде. Я следовал этому руководству, чтобы внедрить admob в мое приложение flutter. https://codelabs.developers.google.com/codelabs/admob-ads-in-flutter#7

Я добавил манифест Android и информационный список. Я также инициализировал мобильные объявления в своем main.dart.

Код для реализации:

 class _NotesRouteState extends State<NotesRoute> {

InterstitialAd? _interstitialAd;
bool _isInterstitialAdReady = false;

void initState() {
    super.initState();
    _loadInterstitialAd();
  }


  void _loadInterstitialAd() {
    InterstitialAd.load(
        adUnitId: AdHelper.interstitialAdUnitId,
      request: AdRequest(),
  adLoadCallback: InterstitialAdLoadCallback(
    onAdLoaded: (ad) {
      this._interstitialAd = ad;
         ad.fullScreenContentCallback = FullScreenContentCallback(
            onAdDismissedFullScreenContent: (ad) {
              print('$ad onAdDismissedFullScreenContent.');
              ad.dispose();
            },
          );
          _isInterstitialAdReady = true;
        },
        onAdFailedToLoad: (err) {
          print('Failed to load an interstitial ad: ${err.message}');
          _isInterstitialAdReady = false;
        },
      ),
    );
  }
  
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: SafeArea(
        top: false,
        child: ListView(
          padding: EdgeInsets.zero,
          children: <Widget>[
            Padding(
              padding: const EdgeInsets.all(8.0),
              child: Align(
                alignment: Alignment.topLeft,
                child: Text(
                  'General Subjects',
                  style: const TextStyle(
                    fontWeight: FontWeight.bold,
                    fontSize: 20,
                    color: Colors.lightBlue,
                  ),
                ),
              ),
            ),
            MyButton(
              onTap: () {
                if (_isInterstitialAdReady) {
                  _interstitialAd?.show();
                } else {
                  Navigator.push(
                    context,
                    MaterialPageRoute(builder: (context) => BahasaRoute()),
                  );
                }
              },
           ],
        ),
      ),
    );
  }
}
 

Надеюсь получить от вас некоторые рекомендации. Спасибо!

Комментарии:

1. используйте идентификаторы тестов для разработки. Реальные идентификаторы объявлений начнут отображаться только после определенного порогового значения запроса. developers.google.com/admob/android/test-ads

2. @KaushikChandru Я использую тестовые идентификаторы

Ответ №1:

_isInterstitialAdReady = true не устанавливается состояние. Удалите проверку условий в ontap, и она должна работать, или добавьте a setState() непосредственно перед проверкой условий.