Flutter广告集成插件admob_widgets的使用
Flutter广告集成插件admob_widgets的使用
admob_widgets
是一个方便使用 AdMob 广告单元的 Flutter 插件。本文将介绍如何在 Flutter 应用中集成和使用 admob_widgets
插件。
开始使用
Android
首先,你需要在 AndroidManifest.xml
文件中添加以下权限:
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
然后,在 <application>
标签内添加你的应用 ID:
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="ca-app-pub-{your application ID}"/>
最后,在 main
函数中初始化插件并运行应用:
void main() async {
WidgetsFlutterBinding.ensureInitialized();
AdMobWidgets.instance(
androidBannerAdUnitId: "{Your banner ad unit Id}",
androidInterstitialAdUnitId: "{Your interstitial ad unit Id}"
);
await MobileAds.instance.initialize();
runApp(const MainApp());
}
使用示例
Banner Widget
要在应用中展示横幅广告,只需插入 BannerWidget
组件即可:
// 只需调用该组件
const BannerWidget();
插入式广告(Interstitial)
首先,创建一个 InterstitialUnit
类实例,并加载广告:
// 初始化插件类 InterstitialUnit
final interstitialUnit = InterstitialUnit();
// 初始化 InterstitialAd
InterstitialAd? _interstitialAd;
[@override](/user/override)
void initState() {
super.initState();
// 加载广告
interstitialUnit.loadAd();
}
// 在按钮点击事件中显示广告
setState(() {
// 将类中的 interstitial 赋值给本地变量
_interstitialAd = interstitialUnit.interstitialAd;
// 检查 interstitial 是否不为空
if (_interstitialAd != null) {
// 显示广告
_interstitialAd!.show();
// 重新加载广告
interstitialUnit.loadAd();
}
});
完整示例代码
以下是完整的示例代码,展示了如何在 Flutter 应用中集成和使用 admob_widgets
插件:
import 'package:admob_widgets/admob_widgets.dart';
import 'package:flutter/material.dart';
import 'package:google_mobile_ads/google_mobile_ads.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
AdMobWidgets.instance(
// 测试用的 ID
androidBannerAdUnitId: "ca-app-pub-3940256099942544/6300978111",
androidInterstitialAdUnitId: "ca-app-pub-3940256099942544/1033173712"
);
await MobileAds.instance.initialize();
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final interstitialUnit = InterstitialUnit();
InterstitialAd? _interstitialAd;
[@override](/user/override)
void initState() {
interstitialUnit.loadAd();
super.initState();
}
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
title: 'Material App',
home: Scaffold(
body: Column(
children: [
Expanded(
child: Center(
child: MaterialButton(
onPressed: () {
_interstitialAd = interstitialUnit.interstitialAd;
if (_interstitialAd != null) {
_interstitialAd!.show();
interstitialUnit.loadAd();
}
},
child: const Text('Launch interstitial'),
),
),
),
const BannerWidget(),
],
),
),
);
}
}
更多关于Flutter广告集成插件admob_widgets的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件admob_widgets的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
当然,以下是一个关于如何在Flutter项目中使用admob_widgets
插件来集成Google AdMob广告的示例代码。这个插件可以简化在Flutter应用中展示广告的过程。
1. 添加依赖
首先,你需要在pubspec.yaml
文件中添加admob_widgets
依赖:
dependencies:
flutter:
sdk: flutter
admob_widgets: ^0.x.x # 请替换为最新版本号
然后运行flutter pub get
来安装依赖。
2. 配置AdMob
确保你已经在Google AdMob中创建了一个应用,并获取了应用的Ad Unit ID
。你还需要在AndroidManifest.xml
和Info.plist
文件中配置AdMob权限和设置。
对于Android:
在android/app/src/main/AndroidManifest.xml
中添加以下权限:
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
对于iOS:
在ios/Runner/Info.plist
中添加以下键值对:
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx</string> <!-- 替换为你的AdMob应用ID -->
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key>
<true/>
</dict>
3. 初始化并展示广告
在你的Flutter代码中,你可以按照以下方式使用admob_widgets
来展示广告。
import 'package:flutter/material.dart';
import 'package:admob_widgets/admob_widgets.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: MyHomePage(),
);
}
}
class MyHomePage extends StatelessWidget {
// 替换为你的Ad Unit ID
final String bannerAdUnitId = 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx';
final String interstitialAdUnitId = 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx';
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('AdMob Integration Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
// 展示Banner广告
AdmobBanner(
adUnitId: bannerAdUnitId,
adSize: AdmobBannerSize.BANNER,
),
SizedBox(height: 20),
// 展示按钮,点击时展示Interstitial广告
ElevatedButton(
onPressed: () {
showInterstitialAd();
},
child: Text('Show Interstitial Ad'),
),
],
),
),
);
}
// 展示Interstitial广告的函数
void showInterstitialAd() {
AdmobInterstitial(
adUnitId: interstitialAdUnitId,
listener: (AdmobAdEvent event, Map<String, dynamic> info) {
if (event == AdmobAdEvent.closed) {
print('Interstitial ad closed.');
}
},
)..load()..show();
}
}
注意事项
- 测试广告:在开发过程中,请使用测试广告单元ID,以避免影响你的广告收入。
- 真实广告:发布应用时,请确保使用真实的Ad Unit ID。
- 权限:确保你的应用已正确配置网络权限,以便AdMob能够加载和展示广告。
以上代码展示了如何在Flutter中使用admob_widgets
插件来集成并展示Banner和Interstitial广告。根据你的需求,你可以进一步定制广告的行为和样式。