Flutter广告集成插件tianji_ad的使用

发布于 1周前 作者 ionicwang 来自 Flutter

Flutter广告集成插件tianji_ad的使用

tianji_ad 是一个用于在 Flutter 应用中集成广告的新插件。

开始使用

这个项目是一个 Flutter 插件包的起点。插件包是一种包含 Android 和/或 iOS 平台特定实现代码的专门包。

对于刚开始进行 Flutter 开发的朋友,可以查看官方文档,其中提供了教程、示例、移动开发指南以及完整的 API 参考。

完整示例代码

以下是 tianji_ad 插件的一个完整示例代码:

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

import 'package:flutter/services.dart';
import 'package:tianji_ad/tianji_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 _tianjiAdPlugin = TianJiAd();

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

  // 平台消息是异步的,因此我们初始化在一个异步方法中。
  Future<void> initPlatformState() async {
    String platformVersion;
    // 平台消息可能会失败,所以我们使用 try/catch PlatformException。
    // 我们还处理了消息可能返回 null 的情况。
    try {
      platformVersion = await _tianjiAdPlugin.getPlatformVersion() ?? '未知平台版本';
    } on PlatformException {
      platformVersion = '获取平台版本失败。';
    }

    // 如果在异步平台消息飞行时,该小部件从树中被移除,我们需要丢弃回复而不是调用
    // setState 来更新我们的非存在的外观。
    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(
            children: [
              ElevatedButton(
                child: Text('激励视频广告(进阶)'),
                onPressed: () {
                  showRewardVideoAd2();
                  print("激励视频广告");
                },
              ),
              ElevatedButton(
                child: Text('插屏广告(进阶)'),
                onPressed: () {
                  showChaPingAd();
                  print("插屏广告");
                },
              ),
              ElevatedButton(
                child: Text('获取设备ID'),
                onPressed: () {
                  getDeviceId();
                  print("获取设备ID");
                },
              )
            ],
          ),
        ),
      ),
    );
  }

  /// 获取设备ID
  Future<void> getDeviceId() async {
    try {
      String result = (await _tianjiAdPlugin.getDeviceId()) as String;
      print("result" + result);
    } on PlatformException catch (e) {
      print("调用广告错误");
    }
  }

  /// 展示激励视频广告(进阶)
  Future<void> showRewardVideoAd2() async {
    try {
      String result = (await _tianjiAdPlugin.showRewardVideoAd2()) as String;
      print("result" + result);
      print("3333");
    } on PlatformException catch (e) {
      print("调用广告错误");
    }
  }

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

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

1 回复

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


当然,以下是如何在Flutter项目中集成并使用tianji_ad插件的一个代码示例。请注意,具体的实现可能会根据插件的更新和API的变化而有所不同,因此建议查看最新的官方文档以获取最准确的信息。

首先,你需要在pubspec.yaml文件中添加tianji_ad插件的依赖:

dependencies:
  flutter:
    sdk: flutter
  tianji_ad: ^最新版本号  # 请替换为实际可用的最新版本号

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

接下来,在android/app/build.gradle文件中,你可能需要添加一些必要的配置,比如配置广告的权限和SDK版本等(具体配置根据插件文档要求):

android {
    ...
    defaultConfig {
        ...
        // 添加必要的权限
        minSdkVersion 19
        targetSdkVersion 30
        versionCode 1
        versionName "1.0"

        // 根据tianji_ad插件的要求添加其他配置
    }
    ...
}

ios/Podfile中,如果有需要,也可能需要添加一些配置(具体根据插件文档)。

接下来是具体的代码实现。在你的Flutter项目中,你可以按照以下方式使用tianji_ad插件:

  1. 初始化插件

在应用的入口文件(通常是main.dart)中初始化广告插件。

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

void main() {
  runApp(MyApp());
  // 初始化广告插件(通常在应用启动时调用一次)
  TianjiAd.init(
    appId: "你的广告应用ID",  // 替换为你的实际广告应用ID
    // 其他初始化参数,根据插件文档添加
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}
  1. 展示广告

在你的页面或组件中展示广告。以下是一个简单的示例,展示如何加载和展示一个横幅广告(Banner Ad):

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  BannerAd? _bannerAd;

  @override
  void initState() {
    super.initState();
    // 创建横幅广告实例
    _bannerAd = createBannerAd();
    // 加载广告
    _bannerAd?.load();
  }

  @override
  void dispose() {
    // 释放广告资源
    _bannerAd?.dispose();
    super.dispose();
  }

  BannerAd createBannerAd() {
    return BannerAd.create(
      adSlotId: "你的广告位ID",  // 替换为你的实际广告位ID
      adUnitId: Platform.isAndroid
          ? "你的Android广告单元ID"  // 替换为你的Android广告单元ID
          : "你的iOS广告单元ID",  // 替换为你的iOS广告单元ID
      // 其他广告配置参数
    )
      ..addListener(
        () {
          // 广告状态监听回调
          if (_bannerAd?.state == AdState.loaded) {
            // 广告加载完成,可以在这里进行展示操作
            setState(() {});
          }
        },
      );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Tianji Ad Example'),
      ),
      body: Center(
        child: _bannerAd?.widget ?? Container(
          height: 50,  // 广告未加载时显示一个占位容器
          color: Colors.grey,
        ),
      ),
    );
  }
}

这个示例展示了如何初始化tianji_ad插件,并在一个页面中加载和展示横幅广告。请注意,实际的广告ID和配置参数需要根据你的广告平台账户信息进行替换。

此外,tianji_ad插件可能还支持其他类型的广告,如插屏广告(Interstitial Ad)、激励视频广告(Rewarded Video Ad)等,你可以根据插件文档中的说明进行集成。

最后,别忘了在发布应用前测试广告集成是否工作正常,并遵循广告平台的最佳实践,以确保用户体验和广告收益的最大化。

回到顶部