Flutter插件tnk_flutter_pub的使用方法详解

Flutter插件tnk_flutter_pub的使用方法详解

tnk_flutter_pub

ティ엔ケイ팩トリ 지면광고 flutter插件。

该插件允许您在Flutter应用中使用以下功能:

  • 全屏广告(Interstitial Ad)
  • 原生广告(Native Ad)
  • 视频奖励广告(Video Reward Ad)

安卓开发指南

安卓指南

iOS开发指南

iOS指南

示例代码

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

import 'package:flutter/services.dart';
import 'package:tnk_flutter_pub/tnk_flutter_pub.dart';
import 'package:tnk_flutter_pub_example/tnk_flutter_rwd_analytics.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 _tnkResult = '未知';

  // Tnk pub 插件
  final _tnkFlutterPubPlugin = TnkFlutterPub();

  [@override](/user/override)
  void initState() {
    MethodChannel channel = const MethodChannel('tnk_flutter_pub');
    channel.setMethodCallHandler(tnkInvokedMethods);
    super.initState();
  }

  Future<dynamic> tnkInvokedMethods(MethodCall methodCall) async {
    TnkFlutterPubEventHandler.checkEvent(methodCall);
  }

  Future<void> showInterstitial() async {
    // 显示全屏广告
    TnkFlutterPubEventHandler.showInterstitial("puttest", ITnkAdListener(
          onLoad: () {
            print("onLoad");

          },
          onShow: () {
            print("onShow");

          },
          onClose: (String type) {

            print("onClose $type");
            switch(type) {
              case TnkRewardVideoListener.CLOSE:
                print("关闭按钮点击");
                break;
              case TnkRewardVideoListener.AUTO_CLOSE:
                print("自动关闭");
                break;
              case TnkRewardVideoListener.EXIT:
                print("退出按钮点击");
                break;
            }

          },
          onVideoCompletion: (String code) {
            print("onVideoCompletion $code");
            switch (code) {
              case TnkRewardVideoListener.VIDEO_VERIFY_SUCCESS_S2S:
                print("成功");
                break;
              case TnkRewardVideoListener.VIDEO_VERIFY_SUCCESS_SELF:
                print("成功");
                break;
              case TnkRewardVideoListener.VIDEO_VERIFY_FAILED_TIMEOUT:
                print("媒体服务器判断无法支付");
                break;
              case TnkRewardVideoListener.VIDEO_VERIFY_FAILED_NO_DATA:
                print("无广告展示及曝光记录数据");
                break;
              case TnkRewardVideoListener.VIDEO_VERIFY_FAILED_TEST_VIDEO:
                print("测试视频广告");
                break;
              case TnkRewardVideoListener.VIDEO_VERIFY_FAILED_ERROR:
                print("其他系统错误");
                break;
              default:
                print("其他系统错误");
                break;
            }

          },


          onError: (String code, String message) {
            print("onError $code $message");
            switch (code) {
              case TnkRewardVideoListener.NoError:
                print("成功");
                break;
              case TnkRewardVideoListener.NoAd:
                print("无广告");
                break;
              case TnkRewardVideoListener.NoImage:
                print("无图像");
                break;
              case TnkRewardVideoListener.Timeout:
                print("超时");
                break;
              case TnkRewardVideoListener.Cancel:
                print("用户取消");
                break;
              case TnkRewardVideoListener.ShowBeforeLoad:
                print("加载后显示前关闭");
                break;
              case TnkRewardVideoListener.NoAdFrame:
                print("无广告视图");
                break;
              case TnkRewardVideoListener.DupLoad:
                print("已加载状态");
                break;
              case TnkRewardVideoListener.DupShow:
                print("已显示状态");
                break;
              case TnkRewardVideoListener.NoPlacementId:
                print("无placementId");
                break;
              case TnkRewardVideoListener.NoScreenOrientation:
                print("无屏幕方向");
                break;
              case TnkRewardVideoListener.NoTestDevice:
                print("非测试设备");
                break;
              case TnkRewardVideoListener.SystemFailure:
                print("系统错误");
                break;
              default:
            }

          },
        ));

    if (!mounted) return;
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('tnk pub 插件测试应用'),
        ),
        body: Center(
            child: Column(
          mainAxisAlignment: MainAxisAlignment.spaceEvenly,
          children: [
            Text('结果 \n\n$_tnkResult\n'),
            OutlinedButton(
              onPressed: () {
                showInterstitial();
              },
              style: OutlinedButton.styleFrom(foregroundColor: Colors.black),
              child: const Text('显示全屏广告'),
            ),
          ],
        )),
      ),
    );
  }
}

更多关于Flutter插件tnk_flutter_pub的使用方法详解的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter插件tnk_flutter_pub的使用方法详解的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


tnk_flutter_pub 是一个未知的 Flutter 插件,可能在公共的 Flutter 插件仓库(如 pub.dev)中并不存在,或者它是一个私有插件。因此,关于它的具体功能和使用方法,我无法提供详细的信息。

不过,我可以为你提供一些关于如何使用 Flutter 插件的一般性建议,以便你在遇到类似情况时可以参考:


1. 查找插件信息

  • 如果你有插件的源代码或文档,首先阅读其 README.md 文件,了解插件的功能、安装方法和使用示例。
  • 如果插件来自第三方开发者,尝试联系开发者获取更多信息。

2. 安装插件

pubspec.yaml 文件中添加插件的依赖项。例如:

dependencies:
  tnk_flutter_pub:
    git:
      url: https://github.com/your-repo/tnk_flutter_pub.git
      ref: main # 或指定的分支/标签

如果插件在 pub.dev 上发布,可以直接使用版本号:

dependencies:
  tnk_flutter_pub: ^1.0.0

然后运行 flutter pub get 来安装插件。


3. 导入插件

在 Dart 文件中导入插件:

import 'package:tnk_flutter_pub/tnk_flutter_pub.dart';

4. 使用插件

根据插件的文档或示例代码,调用其提供的功能。例如:

void main() {
  // 假设插件有一个初始化方法
  TnkFlutterPub.initialize();
}
回到顶部