Flutter广告集成插件tian_lang_ad的使用

Flutter广告集成插件tian_lang_ad的使用

概述

aorun_ad 是一个用于 Flutter 的广告集成插件。它支持多种广告形式,例如激励视频广告和插屏广告。本文将介绍如何在 Flutter 应用中集成并使用 aorun_ad 插件。


使用步骤

1. 添加依赖

首先,在项目的 pubspec.yaml 文件中添加 aorun_ad 依赖:

dependencies:
  aorun_ad: ^1.0.0 # 替换为最新版本号

然后运行以下命令以更新依赖:

flutter pub get

2. 初始化插件

在应用启动时初始化插件,并获取平台版本信息。

示例代码:

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:aorun_ad/aorun_ad.dart'; // 导入插件

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = '未知'; // 存储平台版本信息
  final _aorunAdPlugin = AorunAd(); // 初始化插件实例

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState(); // 初始化平台状态
  }

  // 获取平台版本信息
  Future<void> initPlatformState() async {
    String platformVersion;
    try {
      platformVersion = await _aorunAdPlugin.getPlatformVersion() ?? '未知平台版本';
    } on PlatformException {
      platformVersion = '获取平台版本失败';
    }

    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('广告插件示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                child: Text('展示激励视频广告(进阶)'),
                onPressed: () {
                  showRewardVideoAd2(); // 调用激励视频广告方法
                  print("激励视频广告");
                },
              ),
              ElevatedButton(
                child: Text('展示插屏广告(进阶)'),
                onPressed: () {
                  showChaPingAd(); // 调用插屏广告方法
                  print("插屏广告");
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  /// 展示激励视频广告(进阶)
  Future<void> showRewardVideoAd2() async {
    try {
      String result = (await _aorunAdPlugin.showRewardVideoAd2()) as String;
      print("result: $result"); // 打印广告返回结果
      print("3333");
    } on PlatformException catch (e) {
      print("调用广告错误: ${e.message}");
    }
  }

  /// 展示插屏广告(进阶)
  Future<void> showChaPingAd() async {
    try {
      _aorunAdPlugin.showChaPingAd(); // 调用插屏广告方法
    } on PlatformException catch (e) {
      print("调用广告错误: ${e.message}");
    }
  }
}

功能说明

1. 获取平台版本

通过 getPlatformVersion() 方法可以获取当前平台的版本信息。此方法可用于检查插件是否正常工作。

2. 展示激励视频广告

通过 showRewardVideoAd2() 方法可以展示激励视频广告。该方法会返回广告的执行结果。

3. 展示插屏广告

通过 showChaPingAd() 方法可以展示插屏广告。该方法无需返回值。


完整示例代码

以下是完整的示例代码,可以直接复制到项目中运行:

import 'package:flutter/material.dart';
import 'dart:async';

import 'package:flutter/services.dart';
import 'package:aorun_ad/aorun_ad.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  [@override](/user/override)
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  String _platformVersion = '未知';
  final _aorunAdPlugin = AorunAd();

  [@override](/user/override)
  void initState() {
    super.initState();
    initPlatformState();
  }

  Future<void> initPlatformState() async {
    String platformVersion;
    try {
      platformVersion = await _aorunAdPlugin.getPlatformVersion() ?? '未知平台版本';
    } on PlatformException {
      platformVersion = '获取平台版本失败';
    }

    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('广告插件示例'),
        ),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                child: Text('展示激励视频广告(进阶)'),
                onPressed: () {
                  showRewardVideoAd2();
                  print("激励视频广告");
                },
              ),
              ElevatedButton(
                child: Text('展示插屏广告(进阶)'),
                onPressed: () {
                  showChaPingAd();
                  print("插屏广告");
                },
              ),
            ],
          ),
        ),
      ),
    );
  }

  Future<void> showRewardVideoAd2() async {
    try {
      String result = (await _aorunAdPlugin.showRewardVideoAd2()) as String;
      print("result: $result");
      print("3333");
    } on PlatformException catch (e) {
      print("调用广告错误: ${e.message}");
    }
  }

  Future<void> showChaPingAd() async {
    try {
      _aorunAdPlugin.showChaPingAd();
    } on PlatformException catch (e) {
      print("调用广告错误: ${e.message}");
    }
  }
}

更多关于Flutter广告集成插件tian_lang_ad的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter广告集成插件tian_lang_ad的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tian_lang_ad 是一个用于在 Flutter 应用中集成广告的插件。它支持多种广告类型,如横幅广告、插页式广告、激励视频广告等。以下是如何在 Flutter 项目中使用 tian_lang_ad 插件的步骤:

1. 添加依赖

首先,在 pubspec.yaml 文件中添加 tian_lang_ad 插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  tian_lang_ad: ^1.0.0  # 请使用最新版本

然后运行 flutter pub get 来安装依赖。

2. 初始化插件

在应用的 main.dart 文件中初始化 tian_lang_ad 插件。通常,你需要在 main() 函数中进行初始化:

import 'package:flutter/material.dart';
import 'package:tian_lang_ad/tian_lang_ad.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await TianLangAd.init(
    appId: 'your_app_id',  // 替换为你的应用ID
    isDebug: true,  // 调试模式,发布时设置为 false
  );
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

3. 使用广告组件

tian_lang_ad 提供了多种广告组件,你可以根据需要在应用中使用它们。

横幅广告

import 'package:flutter/material.dart';
import 'package:tian_lang_ad/tian_lang_ad.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Column(
        children: [
          Expanded(
            child: Center(
              child: Text('Hello, world!'),
            ),
          ),
          TianLangBannerAd(
            adUnitId: 'your_banner_ad_unit_id',  // 替换为你的横幅广告单元ID
            adSize: BannerAdSize.BANNER,
            listener: (AdEvent event, {String? message}) {
              print('Banner Ad Event: $event, Message: $message');
            },
          ),
        ],
      ),
    );
  }
}

插页式广告

import 'package:flutter/material.dart';
import 'package:tian_lang_ad/tian_lang_ad.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            TianLangInterstitialAd.load(
              adUnitId: 'your_interstitial_ad_unit_id',  // 替换为你的插页式广告单元ID
              listener: (AdEvent event, {String? message}) {
                print('Interstitial Ad Event: $event, Message: $message');
                if (event == AdEvent.LOADED) {
                  TianLangInterstitialAd.show();
                }
              },
            );
          },
          child: Text('Show Interstitial Ad'),
        ),
      ),
    );
  }
}

激励视频广告

import 'package:flutter/material.dart';
import 'package:tian_lang_ad/tian_lang_ad.dart';

class MyHomePage extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Demo Home Page'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: () {
            TianLangRewardedAd.load(
              adUnitId: 'your_rewarded_ad_unit_id',  // 替换为你的激励视频广告单元ID
              listener: (AdEvent event, {String? message, int? amount, String? type}) {
                print('Rewarded Ad Event: $event, Message: $message, Amount: $amount, Type: $type');
                if (event == AdEvent.LOADED) {
                  TianLangRewardedAd.show();
                }
              },
            );
          },
          child: Text('Show Rewarded Ad'),
        ),
      ),
    );
  }
}
回到顶部