Flutter广告奖励插件adpopcornreward的使用

Flutter广告奖励插件adpopcornreward的使用

adpopcornreward 插件项目。

当前adpopcornreward SDK版本

  • Android : 9.1.2
  • iOS : 5.0.7

安装插件

pubspec.yaml 文件中添加依赖项:

dependencies:
  adpopcornreward: ^1.0.2

集成指南

要查看更多信息,请参阅 AdPopcornReward集成指南


以下是一个完整的示例Demo来展示如何使用 adpopcornreward 插件:

示例代码

import 'package:flutter/material.dart';
import 'dart:async';
import 'dart:io' show Platform;

import 'package:flutter/services.dart';
import 'package:adpopcornreward/adpopcornreward.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> {
  [@override](/user/override)
  void initState() {
    super.initState();

    // 根据平台初始化插件
    if (Platform.isAndroid) {
      // 在Android上,你需要配置AndroidManifest.xml文件
    } else if (Platform.isIOS) {
      // 在iOS上,设置应用密钥和哈希密钥
      AdPopcornReward.setAppKeyAndHashKey('62198111', '522040fdbe0d4291');
      AdPopcornReward.setLogEnable(true); // 启用日志记录
    }

    // 设置用户ID
    AdPopcornReward.setUserId('flutter_test_mick');

    // 设置插件样式
    AdPopcornReward.setStyle('插件风格标题', '#ff0000', 2);

    // 打开广告奖励墙
    AdPopcornReward.openOfferwall();
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('插件示例应用'),
        ),
        body: Center(
          child: Text('运行在\n'),
        ),
      ),
    );
  }
}

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

1 回复

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


当然,下面是一个关于如何在Flutter项目中使用adpopcornreward插件来实现广告奖励功能的示例代码。adpopcornreward是一个假设的插件名称,实际使用时请替换为具体的Flutter广告奖励插件名称(例如admob_flutter或其他可用的广告奖励插件)。由于我无法直接访问实际的第三方库实现,以下代码将基于一个典型的广告奖励插件的使用方式来进行模拟。

首先,确保你已经在pubspec.yaml文件中添加了相应的广告奖励插件依赖。以下是一个假设的依赖项添加方式:

dependencies:
  flutter:
    sdk: flutter
  adpopcornreward: ^x.y.z  # 替换为实际插件的版本号

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

接下来,在你的Flutter项目中实现广告奖励功能。以下是一个简单的示例代码:

import 'package:flutter/material.dart';
import 'package:adpopcornreward/adpopcornreward.dart';  // 假设的插件导入路径

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: RewardedAdScreen(),
    );
  }
}

class RewardedAdScreen extends StatefulWidget {
  @override
  _RewardedAdScreenState createState() => _RewardedAdScreenState();
}

class _RewardedAdScreenState extends State<RewardedAdScreen> {
  late RewardedAd _rewardedAd;
  bool _isAdLoaded = false;

  @override
  void initState() {
    super.initState();
    _loadRewardedAd();
  }

  void _loadRewardedAd() {
    RewardedAd.load(
      adUnitId: 'ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx',  // 替换为你的广告单元ID
      targetingInfo: targetingInfo,
      listener: (RewardedAdEvent event, {String? rewardType, int? rewardAmount}) {
        if (event == RewardedAdEvent.loaded) {
          setState(() {
            _isAdLoaded = true;
          });
        } else if (event == RewardedAdEvent.closed) {
          _loadRewardedAd();
        } else if (event == RewardedAdEvent.earnedReward) {
          // 用户获得奖励
          print('User earned the reward. Reward: $rewardType, amount: $rewardAmount.');
          // 在这里处理奖励逻辑,例如增加游戏币等
        }
      },
    ).then((rewardedAd) {
      _rewardedAd = rewardedAd ?? throw StateError('Failed to load rewarded ad.');
    }).catchError((error) {
      print('Failed to load rewarded ad: $error');
    });
  }

  void _showRewardedAd() {
    if (_isAdLoaded) {
      _rewardedAd.show().catchError((error) {
        print('Failed to show rewarded ad: $error');
        _loadRewardedAd();
      });
    } else {
      print('Rewarded ad is not loaded.');
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Rewarded Ad Example'),
      ),
      body: Center(
        child: ElevatedButton(
          onPressed: _showRewardedAd,
          child: Text('Show Rewarded Ad'),
        ),
      ),
    );
  }

  // 定义广告定位信息(可选)
  final TargetingInfo targetingInfo = TargetingInfo(
    keywords: ['game', 'puzzle'],
    contentUrl: 'https://www.example.com',
    childDirected: false,
    nonPersonalizedAdsOnly: false,
    // 可以根据需要添加更多定位信息
  );
}

注意

  1. adUnitId需要替换为你从广告提供商那里获得的实际广告单元ID。
  2. TargetingInfo类及其属性可能根据你使用的具体广告插件而有所不同,请查阅相应插件的文档以获取正确的用法。
  3. 插件的导入路径(如package:adpopcornreward/adpopcornreward.dart)和类名(如RewardedAdRewardedAdEventTargetingInfo)也需要根据实际的插件进行调整。
  4. 某些广告插件可能需要额外的配置步骤,例如在Android的AndroidManifest.xml或iOS的Info.plist中添加权限或配置信息,请务必查阅插件的官方文档。

希望这个示例代码能够帮助你在Flutter项目中实现广告奖励功能。

回到顶部