reaper_flutter_plugin1 0.0.39 copy "reaper_flutter_plugin1: ^0.0.39" to clipboard
reaper_flutter_plugin1: ^0.0.39 copied to clipboard

Reaper Flutter plugin project.

example/lib/main.dart

import 'dart:convert';
import 'dart:io';

import 'package:flutter/material.dart';
import 'dart:async';
import 'package:reaper_flutter_plugin1/callbacks/reaper_ad_callback.dart';
import 'package:reaper_flutter_plugin1/callbacks/reaper_splash_ad_callback.dart';
import 'package:reaper_flutter_plugin1/reaper_flutter_plugin.dart';
import 'package:reaper_flutter_plugin1/bean/reaper_init_sdk_android_bean.dart';
import 'package:reaper_flutter_plugin1/bean/reaper_init_sdk_ios_bean.dart';
import 'package:reaper_flutter_plugin1/bean/reaper_interaction_bean.dart';
import 'package:reaper_flutter_plugin1/bean/reaper_reward_video_bean.dart';
import 'package:reaper_flutter_plugin1/bean/reaper_splash_bean.dart';
import 'package:reaper_flutter_plugin1/callbacks/reaper_reward_video_ad_callback.dart';

import 'reaper_request_banner_list_view.dart';
import 'reaper_request_draw_native_express_video_view1.dart';
import 'reaper_request_express_banner_view.dart';
import 'reaper_request_express_feed_list_view.dart';
import 'reaper_request_express_feed_view.dart';
import 'reaper_request_native_draw_feed_video_view.dart';
import 'reaper_request_native_list_view.dart';
import 'reaper_request_native_view.dart';
import 'reaper_request_stream_view.dart';
import 'reaper_reward_video_extra_bean.dart';

import 'reaper_request_banner_view.dart';

void main() {
  runApp(MaterialApp(
    debugShowCheckedModeBanner: false,
    home: MyApp(),
  ));
}

class MyApp extends StatefulWidget {
  @override
  _MyAppState createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  var reaperFlutterPlugin;

  @override
  void initState() {
    super.initState();
    reaperFlutterPlugin = ReaperFlutterPlugin.instance;
    initReaperSdk();
    showSplashAd();
  }

  Future<void> initReaperSdk() async {
    var reaperInitSdkBaseBean;
    if (Platform.isAndroid) {
      const RELEASE_APP_ID = "100015";
      const RELEASE_APP_KEY = "3353bea731f341775a015ef3515864c2";
      reaperInitSdkBaseBean = ReaperInitSdkAndroidBean(
          appId: RELEASE_APP_ID, appKey: RELEASE_APP_KEY);
    } else if (Platform.isIOS) {
      const RELEASE_APP_ID = "100070";
      const RELEASE_APP_KEY = "b0cc4ca0b3a0b0f6f7ca99f03010aa51";
      reaperInitSdkBaseBean =
          ReaperInitSdkIosBean(appId: RELEASE_APP_ID, appKey: RELEASE_APP_KEY);
    }
    await reaperFlutterPlugin.initReaperSdk(reaperInitSdkBaseBean);
  }

  Future<void> showSplashAd() async {
    var reaperSplashBean;
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1559";
    } else if (Platform.isIOS) {
      positionId = "3171";
    }
    reaperSplashBean =
        ReaperSplashBean(positionId: positionId, callBack: splashAdCallBack);
    await reaperFlutterPlugin.requestSplashAd(reaperSplashBean);
  }

  void splashAdCallBack(ReaperSplashAdCallBack reaperSplashAdCallBack) {
    print("reaperSplashAdCallBack:" + reaperSplashAdCallBack.method!);
    if (reaperSplashAdCallBack.method ==
        ReaperSplashAdCallBack.METHOD_ON_SPLASH_AD_FAILED) {
      print(
          "reaperSplashAdCallBack failed reason is ${reaperSplashAdCallBack.error}");
    }
  }

  Future<void> requestInsertAd() async {
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1579";
    } else if (Platform.isIOS) {
      positionId = "1724"; //1742 1746,1904,1947,1742 5016 5765
    }
    var reaperInsertBean = ReaperInteractionBean(
        positionId: positionId, callBack: insertAdCallBack);
    reaperInsertBean.fetchAdOnly = true;
    await reaperFlutterPlugin.requestInteractionAd(reaperInsertBean);
  }

  Future<void> showInsertAd() async {
    print("showInsertAd");
    await reaperFlutterPlugin.showInteractionAd();
  }

  void insertAdCallBack(ReaperAdCallBack data) {
    print("insertAdCallBack:" + data.method!);
  }

  Future<void> showRewardVideoAd() async {
    var reaperRewardVideoBean;
    var positionId;
    if (Platform.isAndroid) {
      positionId = "1537";
    } else if (Platform.isIOS) {
      positionId = "1743";
    }

    ///object will send to your server to verify reward
    ///adCode means position id which will be replaced with real position id in reaper sdk,and should be fixed with %%POS_ID%%
    ///adSrc means ad source which will be replaced with real ad source in reaper sdk,and should be fixed with %%AD_SRC%%
    ///other parameters can be defined dynamic by yourself.
    var reaperRewardVideoExtraBean = ReaperRewardVideoExtraBean(
        uid: "1156642",
        rewardVideoType: 2,
        taskId: "70",
        taskAction: "rewardVideo4energy",
        version: "3.42.0_debug",
        adCode: "%%POS_ID%%",
        adSrc: "%%AD_SRC%%");
    var extra = jsonEncode(reaperRewardVideoExtraBean);
    reaperRewardVideoBean = ReaperRewardVideoBean(
        positionId: positionId, extra: extra, callBack: rewardVideoAdCallBack);
    await reaperFlutterPlugin.requestRewardVideoAd(reaperRewardVideoBean);
  }

  void rewardVideoAdCallBack(
      ReaperRewardVideoAdCallBack reaperRewardVideoAdCallBack) {
    print("rewardVideoAdCallBack:" + reaperRewardVideoAdCallBack.method!);
    if (reaperRewardVideoAdCallBack.method ==
        ReaperRewardVideoAdCallBack.METHOD_ON_REWARD_VERIFY) {
      print(
          "rewardVideoAdCallBack rewardAmount is ${reaperRewardVideoAdCallBack.rewardAmount},"
          "rewardName is ${reaperRewardVideoAdCallBack.rewardName},"
          "rewardVerify is ${reaperRewardVideoAdCallBack.rewardVerify}");
    }
  }

  void showBannerView(BuildContext context) {
    print("banner view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => BannerViewDemo()),
    );
  }

  void showBannerListView(BuildContext context) {
    print("banner list view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => BannerListViewDemo()),
    );
  }

  void showExpressBannerView(BuildContext context) {
    print("banner view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => ExpressBannerViewDemo()),
    );
  }

  void showNativeView(BuildContext context) {
    print("native view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => NativeViewDemo()),
    );
  }

  void showNativeListView(BuildContext context) {
    print("native list view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => NativeListViewDemo()),
    );
  }

  void showExpressFeedView(BuildContext context) {
    print("express feed view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => ExpressFeedViewDemo()),
    );
  }

  void showExpressFeedListView(BuildContext context) {
    print("express feed list view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => ExpressFeedListViewDemo()),
    );
  }

  void showDrawNativeExpressVideoView(BuildContext context) {
    print("draw native express video view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(
          builder: (context) => DrawNativeExpressVideoViewDemo1()),
    );
  }

  void showNativeDrawFeedVideoView(BuildContext context) {
    print("native draw feed video view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => NativeDrawFeedVideoViewDemo()),
    );
  }

  void showStreamView(BuildContext context) {
    print("stream view button clicked");
    Navigator.of(context).push(
      MaterialPageRoute(builder: (context) => StreamViewDemo()),
    );
  }

  @override
  Widget build(BuildContext context) {
    Widget getAdSource() {
      return Center(
          child: SingleChildScrollView(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          crossAxisAlignment: CrossAxisAlignment.center,
          children: [
            ElevatedButton(
              onPressed: requestInsertAd,
              child: Text("请求插屏广告"),
            ),
            ElevatedButton(
              onPressed: showInsertAd,
              child: Text("展示插屏广告"),
            ),
            ElevatedButton(
              onPressed: showSplashAd,
              child: Text("展示开屏广告"),
            ),
            ElevatedButton(
              onPressed: showRewardVideoAd,
              child: Text("展示激励视频广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showBannerView(context);
              },
              child: Text("展示Banner广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showBannerListView(context);
              },
              child: Text("展示Banner列表广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showExpressBannerView(context);
              },
              child: Text("展示iOS模板Banner广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showNativeView(context);
              },
              child: Text("展示自渲染广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showNativeListView(context);
              },
              child: Text("展示自渲染列表广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showExpressFeedView(context);
              },
              child: Text("展示模版信息流广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showExpressFeedListView(context);
              },
              child: Text("展示模版信息流列表广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showDrawNativeExpressVideoView(context);
              },
              child: Text("展示Draw视频广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showNativeDrawFeedVideoView(context);
              },
              child: Text("自渲染Draw视频广告"),
            ),
            ElevatedButton(
              onPressed: () {
                showStreamView(context);
              },
              child: Text("贴片广告"),
            ),
          ],
        ),
      ));
    }

    return MaterialApp(
        home: Scaffold(
      body: Center(
        child: getAdSource(),
      ),
    ));
  }
}
1
likes
130
points
64
downloads

Publisher

unverified uploader

Weekly Downloads

Reaper Flutter plugin project.

Homepage

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter, video_player

More

Packages that depend on reaper_flutter_plugin1