Flutter firebase_admob(IOS开发版)

文章目录


这几个网站非常值得借鉴学习:

  1. 在Dart Packages中有firebase_admob在Flutter的安装和使用方法。
  2. How to show a Firebase AdMob banner ad in Flutter中作者用横幅广告做了一个例子。
  3. Firebase for Flutter中有一些列安装操作的步骤。
  4. Google AdMob官网上提供了入门指南,帮助初学者区分什么是“横幅广告”、“插页式广告”、“原生广告”以及“激励广告”,并为每一种广告提供了<测试广告单元ID>。

在写代码之前需要准备和了解:

  1. 会出现 3 种 ID:

    项目交流联系微信:toushouapp-com,或验证加交流QQ群:595990939,添加需告知来意。

    a) ADMOB_APP_ID :这个是AdMob的账号ID,需要提前注册并且跟自己要开发的APP进行绑定。

    微信公众号
    关注公众号“投手网”,查看隐藏内容

    使用微信扫描二维码关注公众号后,回复“查看码”获取查看码

    dependencies:
      firebase_admob: ^0.9.0+9
    

    然后,在命令行中执行这段命令下载firebase_admob所需的包。

    flutter pub get
    

    在这里插入图片描述

    2. 在Xcode中配置IOS

    用Xcode打开Flutter的IOS项目,在左侧项目目录下找到Runner文件夹下Info.plist文件双击打开,在右侧界面右键Information Property List,选择Add Row。
    Key:GADApplicationIdentifier
    Type:String
    Value:ca-app-pub-################~##########
    配置完成之后不需要做其他操作。【注意:不要在Flutter项目下的IOS文件里去做这个操作,一定要用Xcode打开IOS项目进行这个操作。】

    在这里插入图片描述

    3. 在Flutter项目中编写代码

    main.dart

    import 'package:flutter/material.dart';
    import 'test_page.dart';
    
    void main() {
       
      runApp(new MyApp());
    }
    
    class MyApp extends StatelessWidget {
       
      @override
      Widget build(BuildContext context) {
       
        return new MaterialApp(
          title: 'Firebase AdMob Example',
          theme: new ThemeData(
            primaryColor: const Color(0xFF43a047),
            accentColor: const Color(0xFFffcc00),
            primaryColorBrightness: Brightness.dark,
          ),
          home: new TestPage(),
        );
      }
    }
    

    test_page.dart

    import 'package:flutter/material.dart';
    import 'package:firebase_admob/firebase_admob.dart';
    
    // AdMob的账号 ID
    const String AD_MOB_APP_ID = 'ca-app-pub-################~##########';
    // 横幅广告 测试广告单元 ID
    const String AD_HENG_FU = 'ca-app-pub-3940256099942544/2934735716';
    // 插页式广告 测试广告单元 ID
    const String AD_CHA_YE = 'ca-app-pub-3940256099942544/4411468910';
    // 激励广告 测试广告单元 ID
    const String AD_JI_LI = 'ca-app-pub-3940256099942544/1712485313';
    
    class TestPage extends StatefulWidget {
       
      TestPage({
       Key key}) : super(key: key);
      @override
      _TestPageState createState() => new _TestPageState();
    }
    
    class _TestPageState extends State<TestPage> {
       
    
      int _goldCoins = 0;
    
      static final MobileAdTargetingInfo targetingInfo = new MobileAdTargetingInfo(
        keywords: <String>['flutterio', 'beautiful apps'],
        contentUrl: 'https://flutter.io',
        birthday: DateTime.now(),
        testDevices: <String>[],
      );
      
      // 横幅广告
      BannerAd myBanner = BannerAd(
        adUnitId: AD_HENG_FU,
        size: AdSize.smartBanner,
        targetingInfo: targetingInfo,
        listener: (MobileAdEvent event) {
       
          print("BannerAd event is $event");
        },
      );
    
      // 插页式广告
      InterstitialAd myInterstitial = InterstitialAd(
        adUnitId: AD_CHA_YE,
        targetingInfo: targetingInfo,
        listener: (MobileAdEvent event) {
       
          print("InterstitialAd event is $event");
        },
      );
    
      @override
      void initState() {
       
        super.initState();
    
    	// 初始化
        FirebaseAdMob.instance.initialize(appId: AD_MOB_APP_ID);
    
    	// 激励广告
        RewardedVideoAd.instance.load(adUnitId: AD_JI_LI, targetingInfo: targetingInfo);
        RewardedVideoAd.instance.show();
        RewardedVideoAd.instance.listener =
            (RewardedVideoAdEvent event, {
       String rewardType, int rewardAmount}) {
       
          if (event == RewardedVideoAdEvent.rewarded) {
       
            setState(() {
       
              _goldCoins += rewardAmount;
            });
          }
        };
    
    	// 横幅广告
    	myBanner
      		..load()
      		..show(
        		anchorOffset: 60.0,
        		horizontalCenterOffset: 10.0,
        		anchorType: AnchorType.bottom,
      		);
    
    	// 插页式广告
    	myInterstitial
      		..load()
      		..show(
        		anchorType: AnchorType.bottom,
        		anchorOffset: 0.0,
        		horizontalCenterOffset: 0.0,
      		);
      
      }
    
      @override
      Widget build(BuildContext context) {
       
    
        return new Scaffold(
          appBar: new AppBar(
            title: new Text("Firebase AdMob Example"),
          ),
          body: new Padding(
            padding: new EdgeInsets.symmetric(vertical: 0.0, horizontal: 4.0),
            child: Text(
    			'${
         _goldCoins}'
    		),
          ),
        );
      }
    
      @override
      void dispose() {
       
        myBanner?.dispose();
        myInterstitial?.dispose();
        super.dispose();
      }
    
    }
    

关注微信公众号

微信公众号
toushouappcom

扫码入群

微信扫一扫
长按识别入群

QQ扫描加群

QQ扫描加群
595990939


投手网-优化师-教程 » Flutter firebase_admob(IOS开发版)

扫码,关注更多行业内容
微信二维码
APP产品投放无服务费
QQ二维码
微信号:
QQ号:
复制文字

toushouapp-com

复制文字

2109763290