跳到主要内容
版本:国内SDK

国内游戏对接文档--安卓

版本

当前版本1.9.1.2

历史版本

SDK功能

  1. 登录,切换账号,登出,退出登录。
  2. 实名认证
  3. 支付
  4. 广告
  5. 上报游戏角色信息,上报游戏事件
  6. 分享
  7. 数数科技上报接口

1.SDK接入前准备工作

1.1接入前准备工作:发行中间层提供参数说明(参数由发行层技术提供)

参数类型参数描述
game_idstring发行中间层分配的游戏id
appKeystring发行中间层分配的游戏key
appSecretstring发行中间层分配的游戏secret
urlstring发行中间层的服务端域名

1.2 功能流程说明

1.2.1 实名认证流程

实名认证弹框如果选择游戏自定义弹框需要游戏自己设计实名认证框;如果选择模板弹框需要按照相关的模板设计好图片(背景图,按钮图和切换账号按钮图)并在发行后台配置

消息推送配置

2.SDK快速接入

2.1 开发环境

1.com.android.tools.build:gradle 3.2.1 版或更高版本,build.gradle需要添加以下几个依赖

dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation "com.android.support:support-v4:28.0.0"
implementation "com.android.support:cardview-v7:28.0.0"
implementation "com.android.support:recyclerview-v7:28.0.0"
implementation "android.arch.lifecycle:extensions:1.1.1"
implementation "pl.droidsonroids.gif:android-gif-drawable:1.2.18"
}

2.SDK相关的aar包

  • 把u8sdk3.aar复制到游戏工程的libs下,并添加引用;

2.2 Application 配置

方式一:如果游戏层没有自己的Application,那么游戏需要将AndroidManifest.xml中的application指定为 com.u8.sdk.U8Application。

  <application
android:name="com.u8.sdk.U8Application"
··· >
···
</application>

方式二:如果游戏有自己的Application,则可以看我们的自定义Application

  • 1.游戏中AndroidManifest.xml中,将application节点的android:name属性设置为 com.u8.sdk.U8Application
  • 2.如果游戏有自己的Application需求,或者需要在Application的生命周期方法中,做一些操作。 那么可以实现IApplicationListener里面的接口。
  • 3.上面定义了游戏的Application,紧接着,在AndroidManifest.xml中,将上面我们定义的GameProxyApplication,配置到meta-data中,android:name为U8_Game_Application。

示例,我们定义一个GameProxyApplication实现IApplicationListener接口:

<application
···
android:name="com.u8.sdk.U8Application" >
<meta-data android:name="U8_Game_Application" android:value="com.u8.sdk.test.GameProxyApplication" />
···
</application>

2.3 SDK初始化(必接)

提示

所有接口调用,都通过com.u8.sdk.platform.U8Platform 单例类来调用

该方法必须在游戏启动Activity的onCreate方法中调用

U8Platform.getInstance().init(this, new U8InitListener() {
@Override
public void onSwitchAccount(UToken data) {
//游戏中通过SDK切换到新账号的回调,游戏收到该回调,需要引导用户重新登录,重新加载该新用户对应的角色数据
//UToken中的参数如下:
//userID:U8Server生成的唯一用户ID,
//sdkUserID:渠道SDK平台用户唯一ID,游戏服务器需要将游戏账户ID和该sdkUserID进行绑定。
//isVistor:是否是游客账号,true 是;false 不是
//username:U8Server生成的用户名,
//sdkUserName:渠道SDK平台用户名,可能为空,部分渠道SDK没有返回用户名
//token:U8Server生成的会话ID,游戏服务器拿该字段去U8Server做二次登录验证
//extension:U8Server返回的扩展字段,部分渠道SDK需要,游戏中无需使用该字段的值
//timestamp:U8Server生成的时间戳,游戏服务器去U8Server做二次登录验证时,传给U8Server
//isCustomRealName 是否游戏自定义实名认证界面 true 是;false 不是
//idcardStatus 玩家身份状态 0:没有身份认证; 1:小于8岁; 2:大于8岁小于16岁;3:大于18岁;4:假身份(格式符合要求的身份证);5:大于16岁小于18岁
}

@Override
public void onPayResult(int code, String msg) {
Log.d("U8SDK", "pay result. code:"+code+";msg:"+msg);
switch(code){
case U8Code.CODE_PAY_SUCCESS:
//支付成功
break;
case U8Code.CODE_PAY_FAIL:
//支付失败
break;
case U8Code.CODE_PAY_CANCEL:
//支付取消
break;
case U8Code.CODE_PAY_UNKNOWN:
//支付未知错误
break;
}
}

@Override
public void onLogout() {
//用户登出回调(需要收到该回调需要返回游戏登录界面,并调用login接口,打开SDK登录界面)
}

@Override
public void onLoginResult(int code, UToken data) {
switch(code){
case U8Code.CODE_LOGIN_SUCCESS:
//登录成功
//进入游戏
//从UToken中获取用户信息
//渠道SDK登录并去u8server登录认证成功,会回调改方法。
//UToken中的参数如下:
//userID:U8Server生成的唯一用户ID,
//sdkUserID:渠道SDK平台用户唯一ID,游戏服务器需要将游戏账户ID和该userID进行绑定。
//isVistor:是否是游客账号,true 是;false 不是
//username:U8Server生成的用户名,
//sdkUserName:渠道SDK平台用户名,可能为空,部分渠道SDK没有返回用户名
//token:U8Server生成的会话ID,游戏服务器拿该字段去U8Server做二次登录验证
//extension:U8Server返回的扩展字段,部分渠道SDK需要,游戏中无需使用该字段的值
//timestamp:U8Server生成的时间戳,游戏服务器去U8Server做二次登录验证时,传给U8Server
//isCustomRealName 是否游戏自定义实名认证界面 true 是;false 不是
//idcardStatus 玩家身份状态 0:没有身份认证; 1:小于8岁; 2:大于8岁小于16岁;3:大于18岁;4:假身份(格式符合要求的身份证);5:大于16岁小于18岁
//shareOpen 是否开启分享功能 0.不开启 1.开启
break;
case U8Code.CODE_LOGIN_FAIL:
//登录失败
break;
}
}

@Override
public void onInitResult(int code, String msg) {
Log.d("U8SDK", "init result.code:"+code+";msg:"+msg);
switch(code){
case U8Code.CODE_INIT_SUCCESS:
//初始化成功
break;
case U8Code.CODE_INIT_FAIL:
//初始化失败
break;
}
}
@Override
public void onShareResult(int code, String msg) {
Log.d("U8SDK", "share result.code:"+code+";msg:"+msg);
switch(code){
case U8Code.CODE_SHARE_SUCCESS:
//分享成功
break;
case U8Code.CODE_SHARE_FAILED:
//分享失败
break;
}
}

@Override
public void onBindAccountResult(int code, String s) {
switch(code){
case U8Code.CODE_BIND_SUCCESS:
Log.d("U8SDK", "onBindAccountResult.code:"+code+";msg:绑定成功");
//绑定成功的回调,sdhk内部绑定成功回调此函数
break;
}
}

@Override
public void onRealNameResult(int code, int idCardState) {
switch(code){
case U8Code.CODE_REALNAME_SUCCESS:
Log.d("U8SDK", "onRealNameResult:"+code+";msg:实名认证成功");
//实名认证成功的回调 ,sdk内部实名成功和实名认证接口实名成功都会收
//到此回调
//idCardState  实名认证状态,0:没有身份认证; 1:小于8岁;
//2:大于8岁小于18岁;3:大于18岁;4:假身份(格式符合要求的身份证);
//5大于16岁小于18岁
break;
}
}

@Override
public void onProductQueryResult(List<ProductQueryResult> result) {

}
});

2.4 生命周期函数(必接)

在游戏启动Activity的如下生命周期函数中,调用对应的方法。

public void onActivityResult(int requestCode, int resultCode, Intent data){
U8SDK.getInstance().onActivityResult(requestCode, resultCode, data);
super.onActivityResult(requestCode, resultCode, data);
}

public void onStart(){
U8SDK.getInstance().onStart();
super.onStart();
}

public void onPause(){
U8SDK.getInstance().onPause();
super.onPause();
}
public void onResume(){
U8SDK.getInstance().onResume();
super.onResume();
}
public void onNewIntent(Intent newIntent){
U8SDK.getInstance().onNewIntent(newIntent);
super.onNewIntent(newIntent);
}
public void onStop(){
U8SDK.getInstance().onStop();
super.onStop();
}
public void onDestroy(){
U8SDK.getInstance().onDestroy();
super.onDestroy();
}
public void onRestart(){
U8SDK.getInstance().onRestart();
super.onRestart();
}

public void onConfigurationChanged(Configuration newConfig){
super.onConfigurationChanged(newConfig);
}

public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults){
U8SDK.getInstance().onRequestPermissionResult(requestCode, permissions, grantResults);
}

2.5 网游版登录接口(必接)

login(Activity context)

接口说明:

  • 登录接口,打开SDK登录界面,登录成功或者失败,会触发上面初始化监听器中的onLoginResult回调函数

参数说明:

  • context:android的上下文

调用示例:

U8Platform.getInstance().login(context);

2.6 登出接口(选接)

logout()

接口说明:

  • 登出接口, SDK账户登出, 但是不是每个SDK都具有登出逻辑,对应没有提供登出接口的SDK,调用该函数,什么也不操作

调用示例:

U8Platform.getInstance().logout();

2.7 退出游戏(必接)

exitSDK(final U8ExitListener u8ExitListener)

接口说明:

  • 当玩家点击手机上返回键或者游戏中【退出游戏】按钮时,部分渠道SDK会弹出一个“退出确认对话框”,让玩家确认退出,或者取消退出
  • 游戏层需要在U8ExitListener的onGameExit中, 来调用游戏自己的退出游戏确认弹窗(对于没有提供退出确认弹窗接口的SDK,会触发该回调)

参数说明:

  • u8ExitListener:接口回调

调用示例:

U8Platform.getInstance().exitSDK(new U8ExitListener() {

@Override
public void onGameExit() {
//游戏自己的退出确认框,这个是示例,游戏可以按照游戏自己的风格写弹框
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("退出确认");
builder.setMessage("主公,现在还早,要不要再玩一会?");
builder.setCancelable(true);
builder.setPositiveButton("好吧",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
//这里什么都不用做
}
});
builder.setNeutralButton("一会再玩",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int whichButton) {
//退出游戏
MainActivity.this.finish();
System.exit(0);
}
});
builder.show();
}
});

2.8 上报游戏角色信息(必接)

备注:登录成功之后调用;调用的时候,暂时没有数据的参数值需要传默认值(自己定),不可传空。

submitExtraData(UserExtraData extraData)

接口说明:

  • 要求在 选择服务器,创建角色,登录游戏,角色升级等时刻,要上报游戏中玩家数据,以便后台统计用户数据。所以,游戏层需要在特定的地方多次调用该方法。

参数说明:

  • extraData:角色信息传递参数的对象

关于UserExtraData对象:

参数名称参数类型参数说明
dataTypeint上报类型,比如选择服务器,创建角色...
serverIDString玩家所在服务器的ID
serverNameString玩家所在服务器的名称
roleIDString玩家角色ID
roleNameString玩家角色名称
roleLevelString玩家角色等级
moneyNumString当前角色身上拥有的游戏币数量
roleCreateTimelong角色创建时间,单位秒,必须传入真实的数据
roleLevelUpTimelong角色等级变化时间,从1970年到现在的时间,单位秒
roleNameString玩家角色名称
roleLevelString玩家角色等级
vipString玩家vip等级

UserExtraData中的dataType类型如下:

  • public static final int TYPE_SELECT_SERVER = 1; //选择服务器
  • public static final int TYPE_CREATE_ROLE = 2; //创建角色
  • public static final int TYPE_ENTER_GAME = 3; //进入游戏
  • public static final int TYPE_LEVEL_UP = 4; //等级提升
  • public static final int TYPE_EXIT_GAME = 5; //退出游戏
  • public static final int TYPE_AD_EVENT = 6; //广告播放成功
  • public static final int TYPE_DEVICE_ACTIVE = 7; //设备启动
  • public static final int TYPE_PID_EVENT = 8; //渠道登录成功
  • public static final int TYPE_BIND_THIRED = 9; //绑定第三方
  • public static final int TYPE_DEVICE_ENTER_GAME =10; //设备进入游戏
  • public static final int TYPE_DEVICE_ENTER_SERVICE =11; //设备开始进服
  • public static final int TYPE_OTHER_EVENT =12; //其他事件
  • public static final int TYPE_CHANGE_ROLE_NAME =13; //修改角色昵称

游戏必须要调用的类型如下:

1:选择服务器; 2:创建角色; 3:进入游戏; 4:等级提升;10:设备进入游戏; 11:设备开始进服; 12:其他事件(设备加载过程,角色完成引导等);13:修改角色昵称

调用示例:

    UserExtraData data = new UserExtraData();
data.setDataType(UserExtraData.TYPE_CREATE_ROLE);
data.setMoneyNum(100);
data.setRoleCreateTime(System.currentTimeMillis()/1000);
data.setRoleID("role_100");
data.setRoleName("test_112");
data.setRoleLevel("10");
data.setRoleLevelUpTime(System.currentTimeMillis()/1000);
data.setServerID(10);
data.setServerName("server_10");
U8Platform.getInstance().submitExtraData(data);

2.9 支付充值(必接)

 pay(Activity context, PayParams payParams)

接口说明:

  • 充值接口,打开SDK充值界面。 充值成功或者失败,会触发初始化监听器中的onPayResult接口

参数说明:

  • context:android 的上下文
  • payParams:支付参数的传递对象

关于PayParams对象:

参数名称参数类型参数说明
productIdString充值商品ID,游戏内的商品ID
productNameString商品名称,比如100元宝,500钻石...
productDescString商品描述,比如 充值100元宝,赠送20元宝
pricedouble充值金额,单位:元
buyNumint购买数量,一般都是1
coinNumint玩家当前身上剩余的游戏币
serverIdString玩家所在服务器的ID
serverNameString玩家所在服务器的名称
roleIDString玩家角色ID
roleNameString玩家角色名称
roleLevelString玩家角色等级
vipString玩家vip等级
payNotifyUrlString游戏服务器支付回调地址,渠道SDK支付成功,异步通知U8Server,U8Server根据该地址,通知游戏服务器发货
paySubNotifyUrlString游戏服务器订阅支付回调地址,渠道SDK支付成功,异步通知U8Server,U8Server根据该地址,通知游戏服务器发货
extensionString支付成功之后,U8Server通知游戏服务器时,原样返回给游戏服务器。不要传null和"";长度不超过255
skuTypeString商品类型,订阅商品"subs";普通商品"inapp",google支付用到,其余支付不会用到
product_detailString商品的道具列表,道具信息请按照上面示例传参(非必传)

调用示例:

    PayParams params = new PayParams();
params.setBuyNum(1); //购买数量,固定1
params.setCoinNum(100); //当前玩家身上拥有的游戏币数量
params.setExtension(System.currentTimeMillis()+""); //游戏自定义数据,充值成功,回调游戏服的时候,会原封不动返回。备注:不要传null和"";长度不超过255
params.setPrice(1); //单位:美元
params.setProductId("1"); //产品ID
params.setProductName("元宝"); //产品名称
params.setProductDesc("购买100元宝"); //产品描述
params.setRoleId("1"); //角色ID
params.setRoleLevel(1); //角色等级
params.setRoleName("测试角色名"); //角色名称
params.setServerId("10"); //服务器ID
params.setServerName("测试"); //服务器名称
params.setVip("vip1"); //角色VIP等级
params.setPayNotifyUrl("http://www.game.com/pay/callback"); //支付成功,U8Server异步通知该地址,告诉游戏服务器发货
params.setPaySubNotifyUrl("http://andtest-api.m-co.cn/subtest.php"); //支付成功,U8Server异步通知该地址,告诉游戏服务器订阅成功
params.setSkuType("inapp");//商品类型,订阅商品"subs";普通商品"inapp",google支付用到,其余支付不会用到
List<String> product_details = new ArrayList<>();
JSONObject product_detail_1 = new JSONObject();
product_detail_1.put("mj_daoju_id","ceshi_1");//道具id,游戏自己定义
product_detail_1.put("mj_daoju_name","daoju_1");//道具名称,游戏自己定义
product_detail_1.put("mj_daoju_type","daoju_type_1");//道具类型,游戏自己定义
product_detail_1.put("mj_daoju_value",0.01);//道具价值,游戏自己定义
product_details.add(product_detail_1.toString());
JSONObject product_detail_2 = new JSONObject();
product_detail_2.put("mj_daoju_id","ceshi_2");
product_detail_2.put("mj_daoju_name","daoju_2");
product_detail_2.put("mj_daoju_type","daoju_type_2");
product_detail_2.put("mj_daoju_value",0.01);
product_details.add(product_detail_2.toString());
params.setProduct_detail(product_details.toString());//商品的道具列表
U8Platform.getInstance().pay(this, params);

2.10 登录接口(正常接2.5,特殊的游戏调用这个)

djChannelAccount(String account)

接口说明:

  • 登录接口,初始化成功之后调用,针对于有生成唯一标识且使用这个标识作为SDK账号的游戏调用此接口,登录成功或者会触发初始化监听器中的onLoginResult回调函数

参数说明:

  • account:设备号或者账号标识,游戏里生成的唯一标识

调用示例:

    U8Platform.getInstance().djChannelAccount(account);

其他拓展性接口

2.11 实名认证接口(选接)

realNameVerify(String realName, String idCard, OnRealNameVerifyListener onRealNameVerifyListener);

接口说明:

  • 实名认证接口,认证的结果是通过监听器中的OnRealNameVerifyListener回调函数获取。认证成功回调onRealNameVerifySuccess,携带认证状态;认证失败回调onRealNameVerifyFail,携带失败的错误code和错误msg

参数说明:

  • realName:姓名
  • idCard:身份证号
  • onRealNameVerifyListener:接口回调

调用示例:

U8Platform.getInstance().realNameVerify(realName,idCard,new OnRealNameVerifyListener {

/**
* 实名认证成功
*/
public void onRealNameVerifySuccess(int idCardState);

/**
* 实名认证失败
* errorCode 错误码
* errorMsg 错误信息 ,1参数错误,5,请填写正确的姓名6,请填写正确的身份证7,您的实名已超限制8,您的实名IP已超限制9,请填写正确的身份证信息10,其他错误
*/
public void onRealNameVerifyFail(int errorCode, String errorMsg);
});

2.12 用户中心(选接)

showAccountCenter()

接口说明:

  • 部分渠道会提供用户中心界面显示用户信息,调用此接口可以拉起渠道的用户中心界面,在用户中心界面会有相应的绑定和切换操作。

调用示例:

    U8Platform.getInstance().showAccountCenter();

2.13 拉起激励视频广告接口(选接)

gameRewardVideoAd(Activity context, RewardVideoAdInfo rewardVideoAdInfo,RewardVideoAdListener rewardVideoAdListener)

接口说明:

  • 激励视频广告接口,拉起渠道的激励视频广告,广告播放完成触发接口携带的回调监听器中的回调函数,里面有广告相关回调信息

参数说明:

  • context:android的上下文
  • rewardVideoAdInfo:需要传递的参数对象
  • rewardVideoAdListener:回调接口

关于RewardVideoAdInfo对象:

参数名称参数类型是否必传参数说明
callbackUrlString使用服务端回调时必传用户激励视频回调地址
server_idString用户服务器id
role_idString用户角色id
rewardVideoNameString广告类型名称
rewardVideoAccountString奖励数量
mediaExtraString用户激励视频透传参数
ExtraString用户其它透传参数
Orientationint期望视频播放的方向1:竖屏,2:横屏

调用示例:

    RewardVideoAdInfo info = new RewardVideoAdInfo();
info.setServer_id("111");//服务器id
info.setRole_id("111");//角色id
info.setCallbackUrl("http://andtest-api.m-co.cn/test.php");//激励视频回调地址
info.setRewardVideoAdID("111111");//广告id
info.setRewardVideoName("激励视频奖励的名称");//奖励的名称
info.setRewardVideoAccount(1); //奖励的数量
info.setOrientation(1);//1:竖屏,2:横屏
info.setUserId("111111111111");//用户id
info.setMediaExtra("视频额外参数");//视频透传参数
info.setExtra("额外参数");//透传参数
U8Platform.getInstance().gameRewardVideoAd(MainActivity.this, info, new RewardVideoAdListener(){
@Override
public void onRequestADFail(int errorCode){
//请求失败,errorCode错误码
}
@Override
public void onRewardVideoAdComplete() {
//视频播放完成
}
@Override
public void onRewardVideoAdCancel() {
//视频播放过程中取消回调
}
@Override
public void onRewardVideoAdClose(Boolean isNeedServerNotice) {
//视频播放完成,关闭视频界面回到游戏界面
//isNeedServerNotice 是否需要服务通知发放奖励,true 是有服务端通知,false是没有服务端通知
}
@Override
public void onRequestADSuccess() {
//请求视频广告成功
}
@Override
public void onRewardVideoAdSkipped() {
//视频跳过
}
});

2.14 游戏数据事件上报接口(选接)

gameEvent(String eventId, Map<String Object> eventData)

接口说明:

  • 游戏数据事件上报接口,此接口用于事件上报

参数说明:

  • eventId:事件名称,由运营提供
  • eventData:事件数据,由运营提供

调用示例:

Map<String, Object> eventData = new HashMap<String, Object>(); 
eventData.put("register", "注册"); //注册。
···
U8Platform.getInstance().gameEvent("mobile", eventData);

2.15 数数科技上报接口(必接)

submitTAUserInfo(int eventType,String eventID,JSONObject jsonObject)

接口说明:

  • 调用数数科技上报接口,上报事件和用户属性数据

参数说明:

  • eventType:上报类型(0:事件上报;1:用户数据上报set;2:用户数据上报setOnce;3:用户数据上报add);4:设置事件的公共属性;6:设置一次性事件上报;7:设置可更新事件上报
  • eventID:上报事件名(用户数据上报set,add,setOnce和设置公共属性时传null或"",事件上报不能为null和"")
  • jsonObject:上报属性数据(必传,不可传null)

调用示例:

   U8Platform.getInstance().submitTAUserInfo(eventType, eventID, jsonObject);
上报时机:角色名称,登出角色和切换角色以示例标准传,其余的事件按照运营提供的文档传参
角色名称修改时上报,类型:set(eventType=1),jsonObject.put("mj_role_name",role_name);
登出角色后时上报 类型:事件上报(eventType=0);eventID="mj_logout_role"(固定的)
切换角色时上报 类型:事件上报(eventType=0);eventID="mj_change_role"(固定的)
角色名称修改
JSONObject jsonObject = new JSONObject();
jsonObject.put("mj_role_name","role_武侠");
U8Platform.getInstance().submitTAUserInfo(1, "", jsonObject);
登出角色
JSONObject jsonObject = new JSONObject();
U8Platform.getInstance().submitTAUserInfo(0, "mj_logout_role", jsonObject);
切换角色
JSONObject jsonObject = new JSONObject();
U8Platform.getInstance().submitTAUserInfo(0, "mj_change_role", jsonObject);
上报公共属性
JSONObject jsonObject = new JSONObject();
jsonObject.put("game_version","1.1.1");
U8Platform.getInstance().submitTAUserInfo(4, "", jsonObject);

2.16 绑定账号接口(选接)

bindAccount(Activity context)

接口说明:

  • 绑定账号接口,打开SDK绑定账号界面,绑定成功,会触发上面初始化监听器中的onBindAccountResult回调函数

参数说明:

  • context:android的上下文

调用示例:

    U8Platform.getInstance().bindAccount(activity);

2.17 切换账号接口(选接)

switchLogin(Activity context)

接口说明:

  • 切换账号接口,打开SDK切换账号界面,切换成功或者失败,会触发上面初始化监听器中的onSwitchAccount回调函数

参数说明:

  • context:android的上下文

调用示例:

    U8Platform.getInstance().switchLogin(activity);

2.18 成就上报接口(选接)

commitMGKYAchievement(String urlpath, String bodyjson, OnMGKYAchievementListener onMGKYAchievementListener)

接口说明:

  • 调用成就上报接口,上报成就信息,目前只有咪咕快游渠道用到

参数说明:

  • urlpath:String 通用接口 url 后缀,指示接口具体功能。游戏内数据上报固定传入"/data/save"
  • bodyjson:String JSONObject的String, 通用http请求的body部分,具体样例见咪咕快游渠道对接文档示例,文档找运营提供。

调用示例:

    String jsonbody = "{\n" +
"\t\"dataList\": [{\n" +
"\t\t\"areaId\": \"1000\",\n" +
"\t\t\"dataId\": \"occupation\",\n" +
"\t\t\"dataType\": 1,\n" +
"\t\t\"dataValue\": \"3\"\n" +
"\t}]\n" +
"}";
U8Platform.getInstance().commitMGKYAchievement("/data/save", jsonbody, new OnMGKYAchievementListener {
/**
* 咪咕快游成就上报成功
*/
public void OnMGKYAchievementSuccess(Object object){
Log.e(TAG, "save data success");
};
/**
* 咪咕快游成就上报失败
*/
public void OnMGKYAchievementFail(String s){
Log.e(TAG, "save data fail "+s);
};
});

2.19 分享接口(选接)

用户设置的图片大小最好不要超过250k,最好不要分享1M以上的图片

支持平台分享样式总览

平台支持样式
微信好友纯文本、图片、视频
微信朋友圈纯文本、图片、视频
新浪微博纯文本、图片、视频
QQ纯文本、图片、视频
QQ空间纯文本、图片、视频
抖音图片、视频
share(ShareInfo shareInfo, OnShareListener onShareListener)

接口说明:

  • 分享接口,分享至微信,QQ,抖音,微博,触发分享开始,成功,取消或者失败的回调

参数说明:

  • shareInfo:分享内容的对象
  • onShareListener:接口回调

关于RewardVideoAdInfo对象:

参数名称参数类型参数说明
shareModeint分享样式,0,图片;1,文本;2,视频
sharePicTypeint分享的形式,分享图片用到,0是网络图片;1是本地文件;2是资源文件;3是bitmap文件;4是字节流文件
picUrlString网络图片链接
picFileNameString本地图片路径
picBitmapBitmap图片形式是bitmap文件需要用到
picBytebyte[]字节流文件
shareTextString分享文本(必传)
shareVideourlString视频的缩略图
shareTitleString分享标题
shareDescString分享视频时的视频描述

调用示例:

    ShareInfo shareInfo = new ShareInfo();
shareInfo.setShareMode(0);
shareInfo.setSharePicType(0);
shareInfo.setShareText("test");
shareInfo.setPicUrl("https://pic.leduimg.com/pic-ledu-com/productEnvironment/1PaJcKz_bf324ccc7dd7025ecb0ca7477ad4e46d.jpg");
U8Platform.getInstance().share(shareInfo, new OnShareListener() {
@Override
public void shareSuccess(String platform) {
//分享成功,platform 分享平台
Log.d(TAG, "==shareSuccess=="+platform);
}

@Override
public void shareFail(String platform, String error) {
//分享失败,platform 分享平台,error 错误信息
Log.d(TAG, "==shareFail=="+platform);
}

@Override
public void shareCancel(String platform) {
//分享取消,platform 分享平台
Log.d(TAG, "==shareCancel=="+platform);
}

@Override
public void shareStart(String platform) {
//分享开始,platform 分享平台
Log.d(TAG, "==shareStart=="+platform);
}
});

2.20 初始化问卷接口(选接)

initUserSurvey(String roleID, String serverID,String callbackUrl,OnInitUserSurverListener onInitUserSurverListener)

接口说明:

  • 初始化问卷接口,是否显示问卷入口。

参数说明:

  • roleID:玩家角色ID
  • serverID:玩家所在服务器的ID
  • callbackUrl:问卷回调地址
  • onInitUserSurverListener:初始化问卷回调

调用示例:

    U8Platform.getInstance().initUserSurvey(roleID, serverID, callbackUrl, new OnInitUserSurverListener {
//初始化问卷,是否显示问卷入口
public void initUserSurver(Boolean isUserSurveyOpen);
//true:显示问卷入口,false:不显示问卷入口
});

2.21 打开问卷接口(选接)

openUserSurvey()

接口说明:

  • 打开问卷接口,调用此接口进入到问卷显示界面。

调用示例:

    U8Platform.getInstance().openUserSurvey();

2.22 预加载激励视频广告接口(选接)

loadTopOnAd(RewardVideoAdInfo info)

接口说明:

  • 加载激励视频广告接口,预加载渠道的激励视频广告,为广告播放做准备。

参数说明:

  • rewardVideoAdInfo:需要传递的参数对象

关于RewardVideoAdInfo对象:

参数名称参数类型是否必传参数说明
callbackUrlString使用服务端回调时必传用户激励视频回调地址
server_idString用户服务器id
role_idString用户角色id
rewardVideoNameString广告类型名称
rewardVideoAccountString奖励数量
mediaExtraString用户激励视频透传参数
ExtraString用户其它透传参数
Orientationint期望视频播放的方向1:竖屏,2:横屏

调用示例:

    RewardVideoAdInfo info = new RewardVideoAdInfo();
info.setRewardVideoAdID("111111");//广告id
info.setRewardVideoName("激励视频奖励的名称");//奖励的名称
info.setRewardVideoAccount(1); //奖励的数量
info.setOrientation(1);//1:竖屏,2:横屏
info.setUserId("111111111111");//用户id
info.setMediaExtra("视频额外参数");//视频透传参数
info.setExtra("额外参数");//透传参数
info.setServer_id("111");//服务器id
info.setRole_id("111");//角色id
info.setCallbackUrl("http://andtest-api.m-co.cn/test.php");//激励视频回调地址
U8Platform.getInstance().loadTopOnAd(info);

2.23 获取用户广告来源选接

getGravityInstallInfo(OnU8GravityInstallInfoListener onU8GravityInstallInfoListener)

接口说明:

  • 获取用户广告来源选接。

调用示例:

    U8Platform.getInstance().getGravityInstallInfo(new OnU8GravityInstallInfoListener() {
@Override
public void getGravityInfo(JSONObject userInfo) {
//userInfo = {"ad_platform":"natural"} //用户渠道来源,natural为自然量
}
});

备注(特殊参数获取)

 渠道号
U8SDK.getInstance().getCurrChannel();
热力引擎调试开关,要在SDK初始化之前调用,调试完成之后一定要去掉此代码
U8SDK.getInstance().setRLYQDebugModel(Boolean isRLYQDebugModel)
是否绑定手机号
U8SDK.getInstance().getBindedPhone();