Как показывать рекламные вставки каждые 20 секунд в трепетании дротиков - PullRequest
1 голос
/ 27 апреля 2020

У меня проблема с внедрением промежуточной временной рекламы с флаттером. Я реализовал одну опцию, которая показывает рекламу при нажатии кнопки, но я хочу, чтобы она отображала рекламу каждые 20 секунд. Пожалуйста, помогите

, используя код ниже, который я нашел онлайн

import 'package:flutter/material.dart';
import 'package:firebase_admob/firebase_admob.dart';

const String testDevice = 'MobileId';

void main() => runApp(MyApp());

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
    testDevices: testDevice != null ? <String>[testDevice] : null,
    nonPersonalizedAds: true,
    keywords: <String>['Game', 'Mario'],
  );

  BannerAd _bannerAd;
  InterstitialAd _interstitialAd;

  BannerAd createBannerAd() {
    return BannerAd(
        adUnitId: BannerAd.testAdUnitId,
      //Change BannerAd adUnitId with Admob ID
        size: AdSize.banner,
        targetingInfo: targetingInfo,
        listener: (MobileAdEvent event) {
          print("BannerAd $event");
        });
  }

  InterstitialAd createInterstitialAd() {
    return InterstitialAd(
        adUnitId: InterstitialAd.testAdUnitId,
      //Change Interstitial AdUnitId with Admob ID
        targetingInfo: targetingInfo,
        listener: (MobileAdEvent event) {
          print("IntersttialAd $event");
        });
  }

  @override
  void initState() {
    FirebaseAdMob.instance.initialize(appId: BannerAd.testAdUnitId);
    //Change appId With Admob Id
    _bannerAd = createBannerAd()
      ..load()
      ..show();
    super.initState();
  }

  @override
  void dispose() {
    _bannerAd.dispose();
    _interstitialAd.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: 'Flutter Demo',
      theme: ThemeData(),
      home: Scaffold(
        appBar: AppBar(
          title: Text("Demo App"),
        ),
        body: Center(
            child: RaisedButton(
          child: Text('Click on Ads'),
          onPressed: () {
            createInterstitialAd()
              ..load()
              ..show();
          },
        )),
      ),
    );
  }
}

Я пользуюсь языком флаттера, а онлайн-учебников пока не так много, потому что сообщество все еще растет

1 Ответ

0 голосов
/ 27 апреля 2020

Попробуйте добавить следующее в ваш код:

import 'dart:async'; // <-- put  it on very top of your file

Timer _timerForInter; // <- Put this line on top of _MyAppState class

@override
void initState() {
  // Add these lines to launch timer on start of the app
  _timerForInter = Timer.periodic(Duration(seconds: 20), (result) {
  _interstitialAd = createInterstitialAd()..load();
  });
  super.initState();
 }

 @override
 void dispose() {
   // Add these to dispose to cancel timer when user leaves the app
   _timerForInter.cancel();
   _interstitialAd.dispose();
   super.dispose();
}
...