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

1 回复

更多关于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.');
    },
  ),
);
回到顶部