Flutter使用admob_flutter插件

项目主页

1. 下载第三方库

pubspec.yaml文件:

dependencies:
  admob_flutter: "^0.3.4"
2.主代码引入
import 'package:admob_flutter/admob_flutter.dart';

void main() {
  Admob.initialize("ca-app-pub-3940256099942544~1458002511");
  runApp(MyApp());
}
3.细节代码
class _MyHomePageState extends State<MyHomePage> {

  GlobalKey<ScaffoldState> scaffoldState = GlobalKey();
  AdmobBannerSize bannerSize;
  AdmobInterstitial interstitialAd;
  
    @override
  void initState() {
    super.initState();
    bannerSize = AdmobBannerSize.BANNER;
    interstitialAd = AdmobInterstitial(
      adUnitId: "ca-app-pub-3940256099942544/4411468910",
      listener: (AdmobAdEvent event, Map<String, dynamic> args) {
        if (event == AdmobAdEvent.closed) interstitialAd.load();
        handleEvent(event, args, 'Interstitial');
      },
    );
    interstitialAd.load();
  }
  
void handleEvent(
      AdmobAdEvent event, Map<String, dynamic> args, String adType) {
    switch (event) {
      case AdmobAdEvent.loaded:
        print('New Admob $adType Ad loaded!');
        break;
      case AdmobAdEvent.opened:
        print('Admob $adType Ad opened!');
        break;
      case AdmobAdEvent.closed:
        print('Admob $adType Ad closed!');
        break;
      case AdmobAdEvent.failedToLoad:
        print('Admob $adType failed to load. :(');
        break;

      default:
    }
  }
4. 调用横幅和插页广告
  • 横幅:像调用一个普通widget一样调用即可.

    AdmobBanner(
              adUnitId: "ca-app-pub-3940256099942544/2934735716",
              adSize: bannerSize,
              listener: (AdmobAdEvent event, Map<String, dynamic> args) {
                handleEvent(event, args, 'Banner');
              },
            ),
  • 插页:点击按钮

onPressed: () async {
          if (await interstitialAd.isLoaded) {
            interstitialAd.show();
          } else {
            print("Interstitial ad is still loading...");
          }
        },
Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐