Flutter广告集成插件cs_adfly_ad的使用
cs_adfly_ad
这是一个新的Flutter插件项目。
使用步骤
获取开始
此项目是一个用于Flutter的插件包的起点,该插件包包括针对Android和/或iOS的平台特定实现代码。
如果您刚开始使用Flutter开发,请查看在线文档,其中包含教程、示例、移动开发指南以及完整的API参考。
完整示例代码
以下是一个完整的示例代码,展示了如何在Flutter应用中集成和使用cs_adfly_ad
插件。
import 'dart:developer';
import 'package:cs_adfly_ad/cs_adfly_ad_listener.dart';
import 'package:flutter/material.dart';
import 'dart:async';
import 'package:flutter/services.dart';
import 'package:cs_adfly_ad/cs_adfly_ad.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
[@override](/user/override)
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> with CsAdflyAdListener {
final _csAdflyAdPlugin = CsAdflyAd();
var showIconView = false;
[@override](/user/override)
void initState() {
super.initState();
initPlatformState();
}
// 监听错误事件
[@override](/user/override)
void onInteractiveError(String? unitId, int? errCode, String? errMsg) {
debugPrint("cs_adfly onError $unitId; $errCode; $errMsg");
}
// 广告加载成功事件
[@override](/user/override)
void onInteractiveAdLoaded(String? unitId) {
debugPrint("cs_adfly onAdLoaded $unitId");
}
// 广告加载失败事件
[@override](/user/override)
void onInteractiveAdLoadFailure(String? unitId, int? errCode, String? errMsg) {
debugPrint("cs_adfly onAdLoadFailure $unitId; $errCode; $errMsg");
}
// 广告点击事件
[@override](/user/override)
void onInteractiveAdClicked(String? unitId) {
debugPrint("cs_adfly onAdClicked $unitId");
}
// 广告展示事件
[@override](/user/override)
void onInteractiveAdImpression(String? unitId) {
debugPrint("cs_adfly onAdImpression $unitId");
}
// 广告关闭事件
[@override](/user/override)
void onInteractiveAdClosed(String? unitId) {
debugPrint("cs_adfly onAdClosed $unitId");
}
// 初始化插件状态
Future<void> initPlatformState() async {
// 设置监听器
await _csAdflyAdPlugin.setAdflyAdListener(this);
// 初始化插件,传入应用名和密钥
await _csAdflyAdPlugin.initialize("CandyCASH", "9084c09830c7aed7b12d8cbea9b235b7");
// 如果小部件从树中移除时异步平台消息仍在飞行,则我们希望丢弃响应而不是调用setState来更新我们的非存在的外观。
if (!mounted) return;
setState(() {});
}
// 初始化成功回调
[@override](/user/override)
onInitSuccess() {
log("cs_adfly onInitSuccess");
showIconView = true;
setState(() {});
}
[@override](/user/override)
Widget build(BuildContext context) {
final children = <Widget>[
Positioned(
child: TextButton(
onPressed: () {
log("点击加载 icon");
},
child: const Text("加载Icon", style: TextStyle(color: Colors.black, fontSize: 20)),
)
)
];
if (showIconView) {
log("加载 Adfly icon");
children.add(
const Positioned(
bottom: 20,
right: 20,
width: 120,
height: 120,
child: AndroidView(
viewType: "com.cangshengnian.cs_adfly_ad/customAd",
creationParams: <String, dynamic>{
"unitId": "4683",
"width": 120,
"height": 120,
"showClose": true,
},
creationParamsCodec: StandardMessageCodec(),
),
),
);
}
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Container(
width: 300,
height: 400,
color: Colors.pink,
child: Stack(
alignment: Alignment.center,
children: children,
),
),
),
);
}
}
更多关于Flutter广告集成插件cs_adfly_ad的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html
更多关于Flutter广告集成插件cs_adfly_ad的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html
cs_adfly_ad
是一个用于在 Flutter 应用中集成广告的插件。它可以帮助开发者在应用中轻松地展示广告,并通过广告收入来盈利。以下是如何在 Flutter 项目中使用 cs_adfly_ad
插件的基本步骤:
1. 添加依赖
首先,你需要在 pubspec.yaml
文件中添加 cs_adfly_ad
插件的依赖。
dependencies:
flutter:
sdk: flutter
cs_adfly_ad: ^1.0.0 # 请使用最新版本
然后运行 flutter pub get
来安装依赖。
2. 初始化广告插件
在你的 Flutter 应用启动时,需要先初始化广告插件。通常可以在 main.dart
文件中进行初始化。
import 'package:flutter/material.dart';
import 'package:cs_adfly_ad/cs_adfly_ad.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
// 初始化广告插件
await CsAdflyAd.initialize(
appId: 'your_app_id', // 替换为你的应用ID
isDebug: true, // 调试模式,发布时设置为 false
);
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Ads Demo',
home: MyHomePage(),
);
}
}
3. 展示横幅广告
你可以在应用的任何页面中展示横幅广告。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:cs_adfly_ad/cs_adfly_ad.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Ads Demo'),
),
body: Column(
children: [
Expanded(
child: Center(
child: Text('Hello, World!'),
),
),
// 展示横幅广告
CsAdflyBannerAd(
adUnitId: 'your_banner_ad_unit_id', // 替换为你的横幅广告单元ID
adSize: AdSize.banner,
),
],
),
);
}
}
4. 展示插屏广告
插屏广告通常在全屏模式下展示,可以在用户执行某些操作后触发。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:cs_adfly_ad/cs_adfly_ad.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Ads Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 展示插屏广告
await CsAdflyInterstitialAd.load(
adUnitId: 'your_interstitial_ad_unit_id', // 替换为你的插屏广告单元ID
);
CsAdflyInterstitialAd.show();
},
child: Text('Show Interstitial Ad'),
),
),
);
}
}
5. 展示激励视频广告
激励视频广告通常用于奖励用户观看广告后获得某些奖励。以下是一个简单的示例:
import 'package:flutter/material.dart';
import 'package:cs_adfly_ad/cs_adfly_ad.dart';
class MyHomePage extends StatefulWidget {
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Flutter Ads Demo'),
),
body: Center(
child: ElevatedButton(
onPressed: () async {
// 展示激励视频广告
await CsAdflyRewardedAd.load(
adUnitId: 'your_rewarded_ad_unit_id', // 替换为你的激励视频广告单元ID
);
CsAdflyRewardedAd.show(
onUserEarnedReward: (RewardItem reward) {
// 用户获得奖励后的回调
print('User earned reward: ${reward.amount} ${reward.type}');
},
);
},
child: Text('Show Rewarded Ad'),
),
),
);
}
}
6. 处理广告生命周期事件
你可以监听广告的生命周期事件,例如广告加载成功、加载失败、展示、关闭等。以下是一个示例:
CsAdflyBannerAd(
adUnitId: 'your_banner_ad_unit_id',
adSize: AdSize.banner,
listener: CsAdflyBannerAdListener(
onAdLoaded: (Ad ad) {
print('Ad loaded.');
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Ad failed to load: $error');
},
onAdOpened: (Ad ad) {
print('Ad opened.');
},
onAdClosed: (Ad ad) {
print('Ad closed.');
},
),
);