Flutter广告展示插件fat_ads的使用
Flutter广告展示插件fat_ads的使用
FatAds
FatAds 是一个为 Flutter 开发者设计的广告集成包。目前,该包仅支持 AppOpen 广告。
关键特性
- 包含命令行工具,可以自动更新
AndroidManifest.xml
和Info.plist
文件。 - 在调试模式下,始终使用测试单元 ID 以确保安全性。
- 为了方便跨平台开发,当在不支持的平台上运行时,采用静默失败而不是抛出异常。
- 所有参数都有默认值,以便提高可读性。
- 支持 Android 和 iOS 平台。
使用方法
要将 AdMob App ID
添加或更新到 AndroidManifest.xml
和 Info.plist
文件中,请运行以下命令:
flutter pub run fat_ads
显示AppOpen广告
要显示 AppOpen 广告,请在调用 runApp()
之前调用 appOpenAds()
函数,并确保使用 await
关键字。这样可以防止广告突然出现在您的用户界面上。
void main() async {
// 这是一个异步函数,当广告加载成功或者在指定时间内无法加载时返回。
// 为了避免广告突然出现在您的UI上,请确保在调用 `runApp()` 之前调用此函数,并且记得使用 `await` 关键字。
await appOpenAds(
// iosUnitId: "<ios ad unit id>",
// androidUnitId: "<android ad unit id>",
loadingTimeout: const Duration(seconds: 5),
);
runApp(const MyApp());
}
完整示例代码
以下是一个完整的示例代码,展示了如何在 Flutter 应用中使用 fat_ads
插件来显示 AppOpen 广告。
import 'package:fat_ads/fat_ads.dart';
import 'package:flutter/material.dart';
// 注意:如果你忘记在 AndroidManifest.xml 或 Info.plist 中添加 AdMob App ID,应用将会崩溃。
void main() async {
// 调用 appOpenAds() 函数并设置加载超时时间
await appOpenAds(
// iosUnitId: "your_ios_ad_unit_id", // 如果需要,取消注释并替换为你的 iOS 广告单元 ID
// androidUnitId: "your_android_ad_unit_id", // 如果需要,取消注释并替换为你的 Android 广告单元 ID
loadingTimeout: const Duration(seconds: 5),
);
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({super.key});
[@override](/user/override)
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Fat Ads'),
),
body: const FatDebug(
child: Center(child: Text('Did you see the App Open Ad popup?')),
),
),
);
}
}
更多关于Flutter广告展示插件fat_ads的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告展示插件fat_ads的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
fat_ads
是 Flutter 中的一个广告插件,用于在移动应用中展示广告。它支持多种广告类型,如横幅广告、插页广告、激励视频广告等。以下是使用 fat_ads
插件展示广告的基本步骤和示例代码。
1. 添加依赖
首先,在你的 pubspec.yaml
文件中添加 fat_ads
插件的依赖:
dependencies:
flutter:
sdk: flutter
fat_ads: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
以获取依赖包。
2. 初始化广告
在应用的启动时初始化 fat_ads
。通常可以在 main()
函数中完成初始化:
import 'package:fat_ads/fat_ads.dart';
void main() {
WidgetsFlutterBinding.ensureInitialized();
FatAds.initialize(
appId: 'your_app_id', // 替换为你的应用ID
testMode: true, // 测试模式下使用测试广告
);
runApp(MyApp());
}
3. 展示横幅广告
要展示横幅广告,可以使用 BannerAd
组件:
import 'package:flutter/material.dart';
import 'package:fat_ads/fat_ads.dart';
class MyHomePage extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('FatAds Example'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Content goes here'),
),
),
BannerAd(
adUnitId: 'your_banner_ad_unit_id', // 替换为你的横幅广告单元ID
size: AdSize.banner,
listener: (AdEvent event) {
switch (event) {
case AdEvent.loaded:
print('Banner Ad loaded');
break;
case AdEvent.failedToLoad:
print('Banner Ad failed to load');
break;
case AdEvent.opened:
print('Banner Ad opened');
break;
case AdEvent.clicked:
print('Banner Ad clicked');
break;
case AdEvent.closed:
print('Banner Ad closed');
break;
}
},
),
],
),
);
}
}
4. 展示插页广告
要展示插页广告,可以使用 InterstitialAd
类:
import 'package:fat_ads/fat_ads.dart';
void showInterstitialAd() {
InterstitialAd.load(
adUnitId: 'your_interstitial_ad_unit_id', // 替换为你的插页广告单元ID
listener: (AdEvent event) {
switch (event) {
case AdEvent.loaded:
print('Interstitial Ad loaded');
InterstitialAd.show(); // 展示插页广告
break;
case AdEvent.failedToLoad:
print('Interstitial Ad failed to load');
break;
case AdEvent.opened:
print('Interstitial Ad opened');
break;
case AdEvent.clicked:
print('Interstitial Ad clicked');
break;
case AdEvent.closed:
print('Interstitial Ad closed');
break;
}
},
);
}
5. 展示激励视频广告
要展示激励视频广告,可以使用 RewardedAd
类:
import 'package:fat_ads/fat_ads.dart';
void showRewardedAd() {
RewardedAd.load(
adUnitId: 'your_rewarded_ad_unit_id', // 替换为你的激励视频广告单元ID
listener: (AdEvent event, {RewardItem? reward}) {
switch (event) {
case AdEvent.loaded:
print('Rewarded Ad loaded');
RewardedAd.show(); // 展示激励视频广告
break;
case AdEvent.failedToLoad:
print('Rewarded Ad failed to load');
break;
case AdEvent.opened:
print('Rewarded Ad opened');
break;
case AdEvent.clicked:
print('Rewarded Ad clicked');
break;
case AdEvent.closed:
print('Rewarded Ad closed');
break;
case AdEvent.rewarded:
print('Rewarded Ad rewarded with ${reward?.amount} ${reward?.type}');
break;
}
},
);
}