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...");
}
},