reaper_flutter_plugin1 0.0.39
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(),
),
));
}
}