2020/12/23 10.38
这里是官网的教程: topon接入文档
关于简介以及说明什么的请在官网查看,能点进来说明已经了解了TopOn是什么
目录
以下是个人理解以及流程
1、进入TopOn SDK的打包系统下载,旋转指定频道的广告,需要和后台对应
2、查看build.gradle,检查自己的 ,laya打包的native 版本可能会很低,这里需要修改正常版本
3、 在APP 路径下 新建 topon_libs 和 topon_res,将 下载的SDK包文件的 libs放入topon_libs,res放入topon_res
4、配置 android Manifest 权限
1、申请权限
2、测试调用是否成功
3、SDK初始化
4、各个广告初始化,下面的广告id都存放在 AdConstant中
4.2 插屏广告 新建 InterstitialAd
4.3 信息流广告(这个有两个类要新建 NativeDemoRender 和 NativeInfoAd)
4.4 开屏广告(开屏广告为了防止开局白屏的情况,我的做法是新建一个界面来显示 开屏广告,等加载完毕后再显示,设置了先加载后显示的模式)
4.5 视频广告 新建 VideoRewardAd.java
总结:以上就介绍了如何加入Topon的完整步骤,有遗漏部分请留言,博主看到都会及时回复的
下面是下载后的文件
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation(name: 'sdklib', ext: 'aar')
api fileTree(include: ['*.jar','*.aar'], dir: 'topon_libs') // 引入这个
testImplementation 'junit:junit:4.12'
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation files('libs/oaid_sdk_1.0.23.aar') // 这个是获得oaid的 ,可不配置
// api 'com.android.support:appcompat-v7:28.0.0'
}
打开SDK包可看见这些东西
在mainActivity中添加申请权限代码,这里的 Manifest单词要注意,后面接的权限,100000可以自定义数字,主要是后续可判断玩家是否授权
public void requestPermission() {
Log.d("申请权限", "申请权限");
ActivityCompat.requestPermissions(JSBridge.mMainActivity, new String[]{Manifest.permission.READ_PHONE_STATE, Manifest.permission.WRITE_EXTERNAL_STORAGE}, 100000);
}
@Override
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
Log.d("申请权限", "onRequestPermissionsResult: " + requestCode);
switch (requestCode) {
case 100000: {
AdConstant.init(); // topon初始化
startActivity(new Intent(this, SplashAdShowActivity.class)); // 开屏广告开始加载
break;
}
default:
break;
}
}
调用ATSDK.integrationChecking(applicationContext);在下方的 logcat中过滤 anythink的Tag查看日志,显示下图且 status是 success表示成功,其他的缺什么补什么即可
ATSDK.init(getApplicationContext(), TopOnAppID, TopOnAppKey);
public static void init(){
ATSDK.init(JSBridge.mMainActivity.getApplicationContext(),AdConstant.APPID,AdConstant.APPKEY);
// ATSDK.setNetworkLogDebug(true);
// Log.d("INITAD","申请权限");
// ActivityCompat.requestPermissions(JSBridge.mMainActivity,new String[]{Manifest.permission.READ_PHONE_STATE,Manifest.permission.WRITE_EXTERNAL_STORAGE},100000);
// 视频初始化
VideoRewardAd.getInstance().init();
// 插屏广告初始化
InterstitialAd.getInstance().init();
BannerAd.getInstance().init();
// 信息流广告初始化
NativeInfoAd.getInstance().init();
}
public class ATAdKeyConst { public static String KEY_USER_ID = "userId"; public static String KEY_USER_VIDEO_DATA = "user_video_data"; }
package demo.advertising;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.anythink.banner.api.ATBannerListener;
import com.anythink.banner.api.ATBannerView;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import demo.JSBridge;
public class BannerAd {
private static BannerAd _bannerAd = null;
private static String TAG = "BannerAd";
public static BannerAd getInstance() {
if (BannerAd._bannerAd == null) {
_bannerAd = new BannerAd();
}
return _bannerAd;
}
private ATBannerView mBannerView = null;
private String[] ids = new String[]{
AdConstant.bannerid_chuanshanjia
};
private int curid_index = 0;
public void init() {
Log.d("新的", "创建新的banner");
// 每次调用刷新一下banner内容
mBannerView = new ATBannerView(JSBridge.mMainActivity);
mBannerView.setPlacementId(this.ids[this.curid_index]);
// mBannerView.setUnitId("b5baca45138428");
mBannerView.setBannerAdListener(new ATBannerListener() {
@Override
public void onBannerLoaded() {
Log.d(TAG, "onBannerLoaded: ");
}
@Override
public void onBannerFailed(AdError adError) {
Log.d(TAG, "onBannerFailed: ");
}
@Override
public void onBannerClicked(ATAdInfo atAdInfo) {
Log.d(TAG, "onBannerClicked: ");
BannerAd.getInstance().hide();
}
@Override
public void onBannerShow(ATAdInfo atAdInfo) {
Log.d(TAG, "onBannerShow: ");
}
@Override
public void onBannerClose(ATAdInfo atAdInfo) {
Log.d(TAG, "onBannerClose ");
// if (mBannerView != null && mBannerView.getParent() != null) {
// ((ViewGroup) mBannerView.getParent()).removeView(mBannerView);
// }
BannerAd.getInstance().hide();
}
@Override
public void onBannerAutoRefreshed(ATAdInfo atAdInfo) {
}
@Override
public void onBannerAutoRefreshFail(AdError adError) {
}
});
mBannerView.loadAd();
}
public void show() {
if (mBannerView == null) {
this.init();
}
int width = JSBridge.mMainActivity.getResources().getDisplayMetrics().widthPixels;//定一个宽度值,比如屏幕宽度
int height = 250;
Log.d("banner广告宽度", height + "");
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(width, height);
params.gravity = Gravity.BOTTOM;
mBannerView.setVisibility(View.VISIBLE);
if(mBannerView.getParent() == null){
JSBridge.mMainActivity.addContentView(mBannerView, params);
}
}
public void hide() {
if (this.mBannerView != null && mBannerView.getParent() != null) {
// ((ViewGroup)mBannerView.getParent()).removeView(mBannerView);
mBannerView.setVisibility(View.INVISIBLE);
mBannerView.loadAd();
}
}
/**
* 跳到下一个bannerId
*/
private void jumpToNextBannerId() {
this.curid_index++;
if (this.curid_index >= this.ids.length) {
this.curid_index = 0;
}
}
}
package demo.advertising;
import android.util.Log;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.anythink.banner.api.ATBannerListener;
import com.anythink.banner.api.ATBannerView;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.interstitial.api.ATInterstitial;
import com.anythink.interstitial.api.ATInterstitialListener;
import java.util.HashMap;
import java.util.Map;
import demo.JSBridge;
public class InterstitialAd {
private static String TAG = "InterstitialAdActivity";
private static InterstitialAd _instance = null;
public static InterstitialAd getInstance() {
if (InterstitialAd._instance == null) {
_instance = new InterstitialAd();
}
return _instance;
}
ATInterstitial mInterstitialAd;
private String[] ids = new String[]{
AdConstant.interstitial_chuanshanjia
};
private int curid_index = 0;
public void init() {
mInterstitialAd = new ATInterstitial(JSBridge.mMainActivity, ids[curid_index]);
addSetting();
Log.i(TAG, "开始加载插屏广告");
mInterstitialAd.setAdListener(new ATInterstitialListener() {
@Override
public void onInterstitialAdLoaded() {
Log.i(TAG, "onInterstitialAdLoaded");
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdLoaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdLoadFail(AdError adError) {
Log.i(TAG, "onInterstitialAdLoadFail:\n" + adError.printStackTrace());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdLoadFail:" + adError.printStackTrace(), Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdClicked(ATAdInfo entity) {
Log.i(TAG, "onInterstitialAdClicked:\n" + entity.toString());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdClicked", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdShow(ATAdInfo entity) {
Log.i(TAG, "onInterstitialAdShow:\n" + entity.toString());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdShow", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdClose(ATAdInfo entity) {
Log.i(TAG, "onInterstitialAdClose:\n" + entity.toString());
mInterstitialAd.load();
// InterstitialAd.getInstance().init();
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdClose", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdVideoStart(ATAdInfo entity) {
Log.i(TAG, "onInterstitialAdVideoStart:\n" + entity.toString());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdVideoStart", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdVideoEnd(ATAdInfo entity) {
Log.i(TAG, "onInterstitialAdVideoEnd:\n" + entity.toString());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdVideoEnd", Toast.LENGTH_SHORT).show();
}
@Override
public void onInterstitialAdVideoError(AdError adError) {
Log.i(TAG, "onInterstitialAdVideoError:\n" + adError.printStackTrace());
// Toast.makeText(InterstitialAdActivity.this, "onInterstitialAdVideoError", Toast.LENGTH_SHORT).show();
}
});
mInterstitialAd.load();
}
public void show(){
Log.i(TAG, "显示插屏广告");
if(mInterstitialAd == null){
this.init();
}
mInterstitialAd.show(JSBridge.mMainActivity);
mInterstitialAd.load();
}
private void addSetting() {
}
/**
* 跳到下一个bannerId
*/
private void jumpToNextBannerId() {
this.curid_index++;
if (this.curid_index >= this.ids.length) {
this.curid_index = 0;
}
}
}
package demo.advertising;
import android.content.Context;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.anythink.nativead.api.ATNativeAdRenderer;
import com.anythink.nativead.api.ATNativeImageView;
import com.anythink.nativead.unitgroup.api.CustomNativeAd;
import com.game.plane.R;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Z on 2020/12/1.
*/
public class NativeDemoRender implements ATNativeAdRenderer {
Context mContext;
List mClickView = new ArrayList<>();
public NativeDemoRender(Context context) {
mContext = context;
}
View mDevelopView;
int mNetworkType;
@Override
public View createView(Context context, int networkType) {
if (mDevelopView == null) {
mDevelopView = LayoutInflater.from(context).inflate(R.layout.native_ad_item, null);
}
mNetworkType = networkType;
if (mDevelopView.getParent() != null) {
((ViewGroup) mDevelopView.getParent()).removeView(mDevelopView);
}
return mDevelopView;
}
@Override
public void renderAdView(View view, CustomNativeAd ad) {
mClickView.clear();
TextView titleView = (TextView) view.findViewById(R.id.native_ad_title);
TextView descView = (TextView) view.findViewById(R.id.native_ad_desc);
TextView ctaView = (TextView) view.findViewById(R.id.native_ad_install_btn);
TextView adFromView = (TextView) view.findViewById(R.id.native_ad_from);
FrameLayout contentArea = (FrameLayout) view.findViewById(R.id.native_ad_content_image_area);
FrameLayout iconArea = (FrameLayout) view.findViewById(R.id.native_ad_image);
final ATNativeImageView logoView = (ATNativeImageView) view.findViewById(R.id.native_ad_logo);
titleView.setText("");
descView.setText("");
ctaView.setText("");
adFromView.setText("");
titleView.setText("");
contentArea.removeAllViews();
iconArea.removeAllViews();
logoView.setImageDrawable(null);
View mediaView = ad.getAdMediaView(contentArea, contentArea.getWidth());
if (ad.isNativeExpress()) {//是 个性化模板
titleView.setVisibility(View.GONE);
descView.setVisibility(View.GONE);
ctaView.setVisibility(View.GONE);
logoView.setVisibility(View.GONE);
iconArea.setVisibility(View.GONE);
if (mediaView.getParent() != null) {
((ViewGroup) mediaView.getParent()).removeView(mediaView);
}
contentArea.addView(mediaView, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
return;
}
titleView.setVisibility(View.VISIBLE);
descView.setVisibility(View.VISIBLE);
ctaView.setVisibility(View.VISIBLE);
logoView.setVisibility(View.VISIBLE);
iconArea.setVisibility(View.VISIBLE);
View adiconView = ad.getAdIconView();
final ATNativeImageView iconView = new ATNativeImageView(mContext);
if (adiconView == null) {
iconArea.addView(iconView);
iconView.setImage(ad.getIconImageUrl());
mClickView.add(iconView);
} else {
iconArea.addView(adiconView);
}
if (!TextUtils.isEmpty(ad.getAdChoiceIconUrl())) {
logoView.setImage(ad.getAdChoiceIconUrl());
} else {
// logoView.setImageResource(R.drawable.ad_logo);
}
if (mediaView != null) {
if (mediaView.getParent() != null) {
((ViewGroup) mediaView.getParent()).removeView(mediaView);
}
contentArea.addView(mediaView, new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT));
} else {
ATNativeImageView imageView = new ATNativeImageView(mContext);
imageView.setImage(ad.getMainImageUrl());
ViewGroup.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
imageView.setLayoutParams(params);
contentArea.addView(imageView, params);
mClickView.add(imageView);
}
titleView.setText(ad.getTitle());
descView.setText(ad.getDescriptionText());
ctaView.setText(ad.getCallToActionText());
if (!TextUtils.isEmpty(ad.getAdFrom())) {
adFromView.setText(ad.getAdFrom() != null ? ad.getAdFrom() : "");
adFromView.setVisibility(View.VISIBLE);
} else {
adFromView.setVisibility(View.GONE);
}
mClickView.add(titleView);
mClickView.add(descView);
mClickView.add(ctaView);
}
public List getClickView() {
return mClickView;
}
}
package demo.advertising;
import android.app.Activity;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.Toast;
import com.anythink.core.api.ATAdConst;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.nativead.api.ATNative;
import com.anythink.nativead.api.ATNativeAdView;
import com.anythink.nativead.api.ATNativeDislikeListener;
import com.anythink.nativead.api.ATNativeEventListener;
import com.anythink.nativead.api.ATNativeNetworkListener;
import com.anythink.nativead.api.NativeAd;
import java.util.HashMap;
import java.util.Map;
import demo.JSBridge;
public class NativeInfoAd {
// 信息流广告
public ATNative atNative;
public ATNativeAdView anyThinkNativeAdView;
public NativeDemoRender anyThinkRender = null;
public Activity main;
public String TAG = "NativeInfoAd";
public int containerHeight = 0;
private static NativeInfoAd _instance = null;
public static NativeInfoAd getInstance() {
if (NativeInfoAd._instance == null) {
_instance = new NativeInfoAd();
}
return _instance;
}
public void init() {
main = JSBridge.mMainActivity;
int padding = dip2px(10);
containerHeight = dip2px(340);
final int adViewWidth = main.getResources().getDisplayMetrics().widthPixels - 2 * padding;
final int adViewHeight = containerHeight - 2 * padding;
anyThinkRender = new NativeDemoRender(main);
atNative = new ATNative(main, AdConstant.adinfo_chuanshanjia, new ATNativeNetworkListener() {
@Override
public void onNativeAdLoaded() {
Log.d(TAG, "load success");
}
@Override
public void onNativeAdLoadFail(AdError adError) {
Log.d(TAG, "load fail");
}
});
Map localMap = new HashMap<>();
// since v5.6.4
localMap.put(ATAdConst.KEY.AD_WIDTH, adViewWidth);
localMap.put(ATAdConst.KEY.AD_HEIGHT, adViewHeight);
atNative.setLocalExtra(localMap);
if(anyThinkNativeAdView == null){
anyThinkNativeAdView = new ATNativeAdView(main);
}
anyThinkNativeAdView.setPadding(padding,padding,padding,0);
// anyThinkNativeAdView.setVisibility(View.GONE);
// main.addContentView(anyThinkNativeAdView,new FrameLayout.LayoutParams(main.getResources().getDisplayMetrics().widthPixels, containerHeight));
loadNativeAd();
}
public void loadNativeAd() {
if (anyThinkNativeAdView != null && anyThinkNativeAdView.getParent() == null) {
FrameLayout.LayoutParams param = new FrameLayout.LayoutParams(main.getResources().getDisplayMetrics().widthPixels, containerHeight);
param.gravity = Gravity.BOTTOM;
main.addContentView(anyThinkNativeAdView, param);
}
atNative.makeAdRequest();
}
public void show() {
NativeAd nativeAd = atNative.getNativeAd();
if(nativeAd != null){
nativeAd.setDislikeCallbackListener(new ATNativeDislikeListener() {
@Override
public void onAdCloseButtonClick(ATNativeAdView atNativeAdView, ATAdInfo atAdInfo) {
Log.i(TAG, "native ad onAdCloseButtonClick");
if (atNativeAdView.getParent() != null) {
((ViewGroup) atNativeAdView.getParent()).removeView(atNativeAdView);
}
}
});
try {
nativeAd.renderAdView(anyThinkNativeAdView,anyThinkRender);
}catch (Exception e){
}
anyThinkNativeAdView.setVisibility(View.VISIBLE);
nativeAd.prepare(anyThinkNativeAdView,anyThinkRender.getClickView(),null);
}
this.loadNativeAd();
}
public void hide(){
if(anyThinkNativeAdView != null){
anyThinkNativeAdView.setVisibility(View.INVISIBLE);
}
}
public int dip2px(float dipValue) {
float scale = JSBridge.mMainActivity.getResources().getDisplayMetrics().density;
return (int) (dipValue * scale + 0.5f);
}
}
res/layout下新建 splash_ad_show.xml
内容:
androidManifest.xml中添加如下代码
新建 SplashAdShowActivity
package demo.advertising;
import android.content.Intent;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v4.app.FragmentActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import android.widget.TextView;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.ATMediationRequestInfo;
import com.anythink.core.api.AdError;
import com.anythink.splashad.api.ATSplashAd;
import com.anythink.splashad.api.ATSplashAdListener;
import com.game.plane.R;
import demo.JSBridge;
import demo.MainActivity;
public class SplashAdShowActivity extends FragmentActivity implements ATSplashAdListener {
ATSplashAd splashAd;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash_ad_show);
String unitId = AdConstant.splash_chuanshanjia;
FrameLayout container = findViewById(R.id.splash_ad_container);
ViewGroup.LayoutParams layoutParams = container.getLayoutParams();
layoutParams.width = getResources().getDisplayMetrics().widthPixels;
layoutParams.height = (int) (getResources().getDisplayMetrics().heightPixels);
ATMediationRequestInfo atMediationRequestInfo = null;
splashAd = new ATSplashAd(this, container, unitId, atMediationRequestInfo, this);
Intent intent = new Intent(this, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent); // 跳转到 mainActivity
}
@Override
public void onAdLoaded() {
Log.d("SplashAdShowActivity", "onAdLoaded---------");
Intent intent = new Intent(JSBridge.mMainActivity, SplashAdShowActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
}
@Override
public void onNoAdError(AdError adError) {
Log.i("SplashAdShowActivity", "onNoAdError---------:" + adError.printStackTrace());
jumpToMainActivity();
}
@Override
public void onAdShow(ATAdInfo entity) {
Log.i("SplashAdShowActivity", "onAdShow:\n" + entity.toString());
// if (entity.getNetworkFirmId() == BaiduATConst.NETWORK_FIRM_ID) {
// /**
// * Only for Baidu:
// * The display time and the skipped advertising style can be configured through the Baidu's backstage(Recommend)
// * , and can be customized and modified in your application.
// */
// skipViewSetting(); //If setting skipview by Baidu's backstage, you should not run this method.
// }
}
private void skipViewSetting() {
final TextView skipView = findViewById(R.id.splash_ad_skip);
CountDownTimer countDownTimer = new CountDownTimer(5000L, 1000L) {
@Override
public void onTick(long millisUntilFinished) {
skipView.setText((millisUntilFinished / 1000) + " | 跳过");
}
@Override
public void onFinish() {
jumpToMainActivity();
}
};
countDownTimer.start();
skipView.setVisibility(View.VISIBLE);
skipView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
jumpToMainActivity();
}
});
}
@Override
public void onAdClick(ATAdInfo entity) {
Log.i("SplashAdShowActivity", "onAdClick:\n" + entity.toString());
}
@Override
public void onAdDismiss(ATAdInfo entity) {
Log.i("SplashAdShowActivity", "onAdDismiss:\n" + entity.toString());
jumpToMainActivity();
}
@Override
public void onAdTick(long millisUtilFinished) {
Log.i("SplashAdShowActivity", "onAdTick---------:" + millisUtilFinished);
}
boolean hasHandleJump = false;
public void jumpToMainActivity() {
if (!hasHandleJump) {
hasHandleJump = true;
finish();
// Toast.makeText(this, "start your MainActivity.", Toast.LENGTH_SHORT).show();
}
}
@Override
protected void onDestroy() {
super.onDestroy();
if (splashAd != null) {
splashAd.onDestory();
}
}
}
package demo.advertising;
import android.util.Log;
import android.view.Gravity;
import android.view.ViewGroup;
import android.widget.FrameLayout;
import com.anythink.banner.api.ATBannerListener;
import com.anythink.core.api.ATAdInfo;
import com.anythink.core.api.AdError;
import com.anythink.rewardvideo.api.ATRewardVideoAd;
import com.anythink.rewardvideo.api.ATRewardVideoListener;
import com.qq.e.ads.nativ.MediaView;
import java.util.HashMap;
import java.util.Map;
import demo.JSBridge;
import demo.message.MessageManager;
import demo.message.NetCmd;
import demo.message.bean.MessageData;
public class VideoRewardAd {
private static VideoRewardAd _bannerAd = null;
private String TAG = "VideoRewardAd";
public static VideoRewardAd getInstance() {
if (VideoRewardAd._bannerAd == null) {
_bannerAd = new VideoRewardAd();
}
return _bannerAd;
}
private ATRewardVideoAd mRewardVideoAd = null;
private String[] ids = new String[]{
AdConstant.reward_videoid_chuanshanjia
};
private int curid_index = 0;
private MessageData cur_data = null;
public void init(){
Log.d(TAG, "创建新的视频");
// 每次调用刷新一下banner内容
mRewardVideoAd = new ATRewardVideoAd(JSBridge.mMainActivity,ids[curid_index]);
Map localMap = new HashMap<>();
// String userid = "test_userid_001";
// String userdata = "test_userdata_001";
// localMap.put(ATAdKeyConst.KEY_USER_ID,userid);
// localMap.put(ATAdKeyConst.KEY_USER_VIDEO_DATA,userdata);
// mRewardVideoAd.setLocalExtra(localMap);
mRewardVideoAd.setAdListener(new ATRewardVideoListener() {
@Override
public void onRewardedVideoAdLoaded() {
Log.i(TAG, "onRewardedVideoAdLoaded");
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdLoaded", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdFailed(AdError errorCode) {
Log.i(TAG, "onRewardedVideoAdFailed error:" + errorCode.printStackTrace());
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdFailed:" + errorCode.printStackTrace(), Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdPlayStart(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayStart:\n" + entity.toString());
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdPlayStart", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdPlayEnd(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayEnd:\n" + entity.toString());
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdPlayEnd", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdPlayFailed(AdError errorCode, ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayFailed error:" + errorCode.printStackTrace());
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdPlayFailed:" + errorCode.printStackTrace(), Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdClosed(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdClosed:\n" + entity.toString() );
if(cur_data != null){
MessageData data = new MessageData(NetCmd.MSG_SHOW_VIDEO,1,cur_data.param);
data.param.code = 1;
MessageManager.getInstance().sendTojs(data);
}
mRewardVideoAd.load();
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdClosed", Toast.LENGTH_SHORT).show();
}
@Override
public void onRewardedVideoAdPlayClicked(ATAdInfo entity) {
Log.i(TAG, "onRewardedVideoAdPlayClicked:\n" + entity.toString());
// Toast.makeText(RewardVideoAdActivity.this, "onRewardedVideoAdPlayClicked", Toast.LENGTH_SHORT).show();
}
@Override
public void onReward(ATAdInfo entity) {
Log.e(TAG, "onReward:\n" + entity.toString() );
}
});
mRewardVideoAd.load();
}
public void show(MessageData data) {
if (mRewardVideoAd.isAdReady()){
this.cur_data = data;
mRewardVideoAd.show(JSBridge.mMainActivity,ids[this.curid_index]);
mRewardVideoAd.load();
} else {
mRewardVideoAd.load();
// mRewardVideoAd.show(JSBridge.mMainActivity);
}
}
/**
* 跳到下一个bannerId
*/
private void jumpToNextBannerId() {
this.curid_index++;
if (this.curid_index >= this.ids.length) {
this.curid_index = 0;
}
}
}