《插件自助开发——广告系统》

广告系统包括广告、积分墙相关的接口。需要实现框架接口InterfaceAds,并通过框架的AdsWrapper类实现广告显示、回调等。

构造函数和初始化

广告系统的类一般命名为"Ads+插件名",构造函数参数为Context,是主 Activity 的Context。
畅思广告的构造函数如下:

public AdsPunchbox(Context context) {
    mContext = (Activity) context;
    mAdapter = this;
}

InterfaceAds

public void showAds(JSONObject paramJSONObject);    //显示广告   
public void hideAds(JSONObject paramJSONObject);    //隐藏广告   
public void preloadAds(JSONObject paramJSONObject); //预加载广告    
public boolean isAdTypeSupported(int paramInt);     //SDK 是否支持类型值为    paramInt的广告类型
public float queryPoints();                         //积分查询    
public void spendPoints(int paramInt);              //扣除积分      
public void setDebugMode(boolean paramBoolean);     // 设置调试模式(已废弃)   
public String getSDKVersion();                      //获取SDK 版本号    
public String getPluginVersion();                   //获取插件版本号

showAds(JSONObject paramJSONObject)

显示广告。在该函数中调用广告接口创建相应的AdView,并通过AdsWrapper.addAdView接口显示广告。
1. 参数

参数名 参数类型 参数说明
Param1 int 广告类型
Param2 int SDK 允许使用多个同类广告时,这些同类广告的序号。

2.AdsWrapper.addAdView
AdsWrapper类中用于显示广告显示的接口,主要用于广告条类型,其声明如下:

public static void addAdView(WindowManager paramWindowManager, View paramView, int paramInt)

参数说明:

3.回调

hideAds(JSONObject paramJSONObject)

隐藏广告。
1. 参数

参数名 参数类型 参数说明
Param1 int 广告类型
Param2 int SDK 允许使用多个同类广告时,这些同类广告的序号。

2.回调

preloadAds(JSONObject paramJSONObject)

预加载广告。预加载是加载广告资源等到本地,并不会显示。
1. 参数

参数名 参数类型 参数说明
Param1 int 广告类型
Param2 int SDK 允许使用多个同类广告时,这些同类广告的序号。

2.回调

isAdTypeSupported(int paramInt)

目前支持的广告类型有4中:

广告类型 标示符 描述
Banner AD_TYPE_BANNER 使用屏幕的一小部分空间来吸引用户通过点击获得更丰富的全屏体验(例如网站或应用商店页面)
插屏广告 AD_TYPE_FULLSCREEN 用户触摸下通常会向用户呈现全屏应用内浏览体验的小型广告
精品推荐 AD_TYPE_MOREAPP 精品推荐
积分墙 AD_TYPE_OFFERWALL 应用内展示各种积分任务(下载安装推荐的优质应用、注册、填表等),以供用户完成任务获得积分的页面
//支持的广告类型
private static final String SUPPORTFUNCTION_STRING =
     "{\"AD_TYPE_BANNER\":\"\",\"AD_TYPE_FULLSCREEN\":\"\",\"AD_TYPE_MOREAPP\":\"\",\"AD_TYPE_OFFERWALL\":\"\"}";
...
//函数实现
public boolean isAdTypeSupported(int adType) {
     String nameString = AdsWrapper.getAdNameWithType(adType);
     if (nameString == null) {
        return false;
     }
     try {
        JSONObject object = new JSONObject(SUPPORTFUNCTION_STRING);
        if (!object.isNull(nameString)) {
              return true;
        }
     } catch (JSONException e) {
        LogE("isAdTypeSupported error ", e);
     }
     return false;
 }

queryPoints()

查询积分,返回值为查询到的积分值,如果是异步查询,以RESULT_CODE_OfferWallOnPointsChanged回调中的 msg 值为准。
回调:

spendPoints(int paramInt)

扣除积分。
1.参数:

2.回调

setDebugMode(boolean paramBoolean)

已废弃,实现方式参照模板。

getSDKVersion()

SDK版本是指第三方SDK的版本号,格式可能都不一样,如6.0、1.0.3、2.1.0.4等,这个版本号格式不需要任何改动。

getPluginVersion()

格式『版本序号_SDK版本号』,版本序号从『2.0.0』开始,每次更新+0.0.1