提交 57aa1fb8 作者: 刘添

更新 AndroidSDK对接说明文档.md

上级 fadb83a3
## GameSDKV1.0文档接入使用 # 国内游戏Android客户端对接说明文档V3.2.2.5
## GameSDKV1.0文档接入使用 # 国内游戏Android客户端对接说明文档V3.2.2.5
[目录](#sec1) ### 目录
    1 [对接说明](#sec1) #### 一.[SDK概述](#sec1)
    1.1 [主要功能](#sec1.1)
    2 [获取对接SDK](#sec2)     1.2 [SDK清单文件](#sec1.2)
               [说明](#sec2.1)     1.3 [更新内容](#sec1.3)
    3 [导入配置SDK资源AndroidStudio](#sec3)     1.4 [接入准备](#sec1.4)
               [添加依赖](#sec3.1) #### 二.[快速集成](#sec2)
               [maven配置](#sec3.2)     1 [引入仓库](#sec2.1)
               [示例](#sec3.2)     2 [导入SDK](#sec2.2)
    4 [配置清单文件](#sec4)     3 [手动引入须知](#sec2.3)
               [清单配置说明](#sec4.1)     4 [初始化SDK](#sec2.4)
    5 [初始化 SDK](#sec5)
               [SDK调用说明](#sec5.1)        4.1 [初始化SDK](#sec2.4.1)
               [application](#sec5.2)        4.2 [SDK登录](#sec2.4.2)
               [调用示例](#sec5.3)        4.3 [显示悬浮球](#sec2.4.4)
    6 [登录](#sec6)        4.4 [SDK支付](#sec2.4.4)
               [接口说明](#sec6.1)        4.5 [SDK角色上报](#sec2.4.5)
               [参数说明](#sec6.2)        4.6 [退出游戏程序](#sec2.4.6)
               [调用示例](#sec6.3)     5 [服务端接口校验](#sec5)
&nbsp;&nbsp;&nbsp;&nbsp;7 [调起支付页面](#sec7) ## 一、 SDK概述<a name="sec1"></a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[调用说明](#sec7.1) 安卓端SDK升级到3.2.2.5版本适配了高版本与退出登录或单点登录状态码返回,具体参数详情见初始化
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [接口参数](#sec7.2)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [调用示例](#sec7.3) ### 1.1 主要功能<a name="sec1.1"></a>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [下单支付字段说明](#sec7.4) * SDK登录
* SDK支付
* SDK角色上报
&nbsp;&nbsp;&nbsp;&nbsp;8 [支付回调结果](#sec8)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[支付文档说明](#sec8.1) ### 1.2 SDK清单文件<a name="sec1.2"></a>
&nbsp;&nbsp;&nbsp;&nbsp;9 [角色上报](#sec9) * SDK清单配置
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[调用示例](#sec9.1) ```
<!--掌玩SDK游戏ID-->
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [参数字段说明](#sec9.2) <meta-data
android:name="game_id"
android:value="149" />
&nbsp;&nbsp;&nbsp;&nbsp;10 [退出登录](#sec10)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[接口回调说明](#sec10.1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [退出成功](#sec10.3)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [退出失败](#sec10.4)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [调用示例](#sec10.5)
&nbsp;&nbsp;&nbsp;&nbsp;11 [退出应用](#sec11)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [调用方法](#sec11.1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; [调用示例](#sec11.1)
&nbsp;&nbsp;&nbsp;&nbsp;12 [gradle依赖](#sec12)
&nbsp;&nbsp;&nbsp;&nbsp;13 [apk打包](#sec13)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[混淆说明](#sec13.1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[打包说明](#sec13.2)
&nbsp;&nbsp;&nbsp;&nbsp;14 [服务端接口说明](#sec14) <!-- 巨量、快手、腾讯开放平台申请应用,用于转端包选择0 -->
<meta-data
android:name="app_id"
android:value="517181" />
<!--腾讯广告必填-->
<meta-data
android:name="secret"
android:value="test" />
<!--快手平台申请应用名称,不是快手投放包可以选择不填写-->
<meta-data
android:name="app_name"
android:value="tlcq" />
#### 1、对接说明 <a name="sec1"></a> <!--0默认SDK,1表示巨量AD,2表示快手,3表示腾讯-->
&nbsp;&nbsp; 1.1、此对接文档只适合与sdkv2.2.0.0(不包含广告SDK) <meta-data
android:name="app_status"
android:value="1" />
&nbsp;&nbsp; 1.2、所有SDK功能在GameSDK类中,可通过初始化获取改类对象,后续所有更新功能都调用这个类中方法完成 ```
&nbsp;&nbsp; 1.3、文档中所有GameSDK指S从平台获取arr文件或者远程依赖implementation 'com.zw.game.sdk:gameSDk:3.0.0.3'
&nbsp;&nbsp; 1.3、文档中广告GameSDK指S从平台获取arr文件或者远程依赖implementation 'com.zw.game.sdk:gameSDk:3.0.0.3'
&nbsp;&nbsp; 1.4、开发工具:要求使用Android Studio 3.0版本及以上,Gradle版本建议5.4.1版本及以上,Gradle插件(Android gradle plugin)版本建议3.2.2版本及以上,- Android SDK版本:最低支持Android 5.0版本(minSdkVersion>=21),targetSdkVersion不支持30以上,建议targetSdkVersion=28; ### 1.3 更新内容<a name="sec1.3"></a>
游戏包体的VersionCode以及VersionName必须设置,不要留空。
* 更新了退出登录与单点登录状态用于研发更新本地缓存数据
### 2、对接SDK<a name="sec2"></a> ### 1.4 接入准备<a name="sec1.4"></a>
从平台处获取对接SDK,android studio版本,选择V3.0.0.3的版本接入。<a name="sec2.1"></a> * 正式接入前请务必阅读掌玩SDK接入流程的介绍,并且在掌玩SDK平台获取game_id与game_secret,此参数将由掌玩游戏对接技术或产品对接,对接时由平台方提供app_id、app_status、app_name、game_id、PackName、游戏appName等字段信息,请严格阅读对接时平台对接人员提供参数文档
### 3、导入配置SDK资源Androidstudio项目<a name="sec3"></a>
#### 3.1、在app工程目录build.gradle中添加依赖<a name="sec3.1"></a> > | 名称 | 说明 |
> | ----------- | ------------------------------------------------- |
> | game_id | 游戏在平台的唯一标识。 |
> | game_secret | 平台方提供,游戏签名秘钥。 |
> | app_status | 用户在平台登录的投放媒体标识。 |
> | app_name | 游戏在三方平台标识(快手)。 |
> | PackName | 游戏在用户设备安装唯一标识 |
> |
``` ## 二 、快速集成<a name="sec2"></a>
implementation("com.zw.game.sdk:gameSDk:3.0.0.3")
//如无法下载SDK完整,请依赖下列仓库
implementation 'com.bytedance.applog:RangersAppLog-Lite-cn:6.15.4'
//// 商业化组件(必须) 6.14.2 以上版本商业化组件独立,注:必须接入以免平台限制应用上传
implementation 'com.bytedance.applog:RangersAppLog-All-convert:6.15.4'
//implementation 'com.zw.game.sdk:gameSDk:1.0.0' 穿山甲广告SDK
//穿山甲广告在主工程中添加
ndk {
abiFilters 'armeabi', 'arm64-v8a', 'armeabi-v7a'
}
### 2.1 引入仓库<a name="sec2.1"></a>
在project级别的build.gradle中添加Maven仓库
``` ```
#### 3.2、在主工程中添加maven<a name="sec3.2"></a> //掌玩SDK
maven { url 'http://nexus.zwwlkj01.top/repository/android-game/' }
```
//巨量SDK //巨量SDK
maven { maven {
url 'https://artifact.bytedance.com/repository/Volcengine/' url 'https://artifact.bytedance.com/repository/Volcengine/'
} }
maven {
url 'https://jitpack.io'
}
mavenCentral()
jcenter()
//掌玩SDK
maven { url 'http://nexus.zwwlkj01.top/repository/android-game/' }
maven { url 'http://nexus.zwwlkj01.top/repository/toutiaoSdk/' }
//适配华为荣耀获取OAID
repositories { maven { url 'https://developer.huawei.com/repo' } }
repositories { maven { url 'https://developer.hihonor.com/repo' } }
``` maven { url 'http://nexus.zwwlkj01.top/repository/toutiaoSdk/' }
#### 3.3本地ARR在gradle依赖
```
``` ```
### 2.2 导入SDK<a name="sec2.2"></a>
在app module级别的build.gradle文件中,在dependencies里引入SDK
* 3.2.2.5版本(最新版)
#### 示例<a name="sec3.3"></a> 在app module级别的build.gradle文件中,在dependencies里引入SDK
![示例1](https://zhangsheng-1300623068.cos.ap-guangzhou.myqcloud.com/android_game_png1.png)
![示例2](https://zhangsheng-1300623068.cos.ap-guangzhou.myqcloud.com/android_ganmepng2.png)
### 4、配置清单文件(具体请参考demo)<a name="sec4"></a>
1、参考demo中的清单文件配置,主要分为权限配置、sdk所需的组件配置,meta信息配置。(权限部分SDK已经适配,访问文件权限,Android10网络访问权限,安装适配等均已适配,但不包含所有设备)<a name="sec4.1"></a>
> **参数说明**:
| 参数名 | 说明 |
|:--------| -------------:|
| game_id | 游戏唯一标识,由平台方提供 |
|game_secret|服务端对接时会用到,由平台方提供|
SDK implementation拆分成为通用组件跟应用宝组件
``` ```
<!--掌玩SDK游戏ID-->
<meta-data
android:name="game_id"
android:value="149" />
<!-- 巨量、快手、腾讯开放平台申请应用,用于转端包选择0 --> //通用版SDK,主要适用快手。转端、巨量、腾讯广告投放或直播
<meta-data
android:name="app_id"
android:value="517181" />
<!--腾讯广告必填--> implementation 'com.zw.game.sdk:gameSDk:3.2.2.5'
<meta-data
android:name="secret"
android:value="test" />
<!--快手平台申请应用名称,不是快手投放包可以选择不填写-->
<meta-data
android:name="app_name"
android:value="tlcq" />
<!--0默认SDK,1表示巨量AD,2表示快手,3表示腾讯--> //应用宝版本SDK 主要用于应用宝上架包,单独会给依赖地址与,每个上架包的仓库地址版本不同
<meta-data //例如----
android:name="app_status"
android:value="1" />
implementation 'com.zw.game.tencent.sdk:gameSDk:1.1.25' //救世英雄版号,此仓库版本用于救世英雄上架包,具体对接技术在对接沟通群发送版本参数文档
``` ```
若工程包启用了混淆,请添加如下混淆配置在app下
### 5、初始化SDK<a name="sec5"></a> ```
-keep class com.bytedance.ads.convert.broadcast.common.EncryptionTools {*;}
1、sdk初始化操作方法,最先调用,需要在主线程调用,最好游戏主界面activity中调用。此方法的可多次调用用于获得sdk全局管理器。<a name="sec5.1"></a>
2、调用示例:在游戏主界面activity的onCreate方法中调用
3、自己主工程application调用application初始化
> **初始化示例**:<a name="sec5.3"></a> ```
### 2.3 手动引入<a name="sec2.3"></a>
推荐您远程引入SKD,如特殊情况需要手动引入,请在对接群中联系技术单独出AAR本地包
### 2.4初始化SDK <a name="sec2.4.1"></a>
在Activity中初始化SDK,建议在游戏ManActivity中初始化
``` ```
GameService.getInstance().onCreate(mActivity, new InitZyCallback() {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
//游戏前必须首先进行初始化:
private void init() {
GameService.getInstance().onCreate(getCurActivity(), new InitZyCallback() {
@Override @Override
public void onSuccess(int status) { public void onSuccess(int status) {
switch (status){ switch (status){
...@@ -269,46 +174,33 @@ ...@@ -269,46 +174,33 @@
case 3: case 3:
showToast("退出登录成功"); showToast("退出登录成功");
break; break;
case 4:
showToast("切换登录成功");
break;
default: default:
showToast("初始化失败"); showToast("初始化失败");
break; break;
} }
}
@Override
public void onFailed(Object o) {
showToast(o.toString());
}
});
//配置横竖屏,等一些可配置信息
ConfigInfo.allowPORTRAIT = false;
}
```
### 6、登录<a name="sec6"></a>
1、添加登录回调监听<a name="sec6.1"></a>
```
public void addLoginListener(OnLoginListener onLoginListener)
``` ```
- 说明:在登陆前必须注册登陆回调监听,用于接收登陆结果,登录成功返回token
- 需游戏服务端调用登录验证之后,才能进入游戏参照[SDK对接说明](#sec14)
#### 参数说明<a name="sec6.2"></a> > | 名称 | 状态码说明 |
> | ----------- | ------------------------------------------------- |
> | status | 状态码-1表示玩家退出登录失败、1SDK初始化完成、2表示初始化失败需、3退出登录完成并CP需要更新游戏状态、4多账号切换情况下切换成功并CP需要刷新数据 |
| 参数 | 说明|
| :-------- | -------------: |
| OnLoginListener | 登录回调接口 |
- 参数类说明:OnLoginListener需要实现两个方法: ### 2.4.2 SDK登录<a name="sec2.4.2"></a>
> **登录成功**:
``` ```
GameService.getInstance().showLogin(new OnLoginListener() {
void loginSuccess(Object data); @Override
public void loginSuccess(Object data) {
}
@Override
public void loginError(Object data) {
}
});
``` ```
...@@ -327,82 +219,20 @@ void loginSuccess(Object data); ...@@ -327,82 +219,20 @@ void loginSuccess(Object data);
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; has_identify | boolean | 是否实名 | | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; has_identify | boolean | 是否实名 |
| &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user_token | strng | token | | &nbsp;&nbsp;&nbsp;&nbsp;&nbsp; user_token | strng | token |
### 2.4.3 游戏显示悬浮球<a name="sec2.4.3"></a>
监听到登录完成或者在登录成功回调中显示悬浮球
> **登录失败**:
```
void loginError(Object data);
``` ```
GameService.getInstance().showBall(activity);
> **登录失败返回参数**:
| 参数 | 类型 | 说明 |
| :-------- | -------------: | -------------: |
| status_code | int| 状态码 |
| data| object | 返回数据 |
| msg| String| 描述信息 |
| data| object | 返回数据 |
#### 调用示例<a name="sec6.3"></a>
```
GameService.getInstance().showLogin(new OnLoginListener() {
@Override
public void loginSuccess(Object data,String token) {
Log.e("loginSuccess",data+"");
//显示悬浮球(根据游戏需求显示,可以在初始化显示,可以登录成功之后显示)
GameService.getInstance().showBall(SdkDemoActivity.this);
}
@Override
public void loginError(Object data) {
}
});
```
### 游戏内中退出登录(请勿在主线程中使用,会导致游戏反复退出登录,游戏内部无退出登录按钮则无需调用此方法,如需不明白,请联系我方技术人员)
```
GameService.getInstance().outGameLogin(new OnLogoutListener() {
@Override
public void logoutSuccess(Object s) {
}
@Override
public void logoutError(Object s) {
}
});
``` ```
#### 悬浮球生命周期中调佣(对接抖音不需要)
```
@Override
protected void onDestroy() {
super.onDestroy();
GameService.getInstance().onDestroy(this);
}
```
### 7、调起支付页面<a name="sec7"></a>
1、调起支付页面方法<a name="sec7.1"></a> ### 2.4.4 SDK支付<a name="sec2.4.4"></a>
``` ```
...@@ -410,15 +240,13 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener) ...@@ -410,15 +240,13 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener)
``` ```
### 接口参数<a name="sec7.2"></a>
| 参数 | 说明 | | 参数 | 说明 |
|:----|-----:| |:----|-----:|
|payParam|支付参数| |payParam|支付参数|
|paymentListener|回调接口| |paymentListener|回调接口|
> 调用示例
#### 调用示例<a name="sec7.3"></a>
``` ```
...@@ -459,8 +287,7 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener) ...@@ -459,8 +287,7 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener)
``` ```
> 下单支付字段说明
#### 下单支付字段说明<a name="sec7.4"></a>
| 名称 | 类型 | 是否必须 | 默认值|说明 | | 名称 | 类型 | 是否必须 | 默认值|说明 |
...@@ -482,11 +309,7 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener) ...@@ -482,11 +309,7 @@ public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener)
| role_vip | string | 必须 | 0|角色vip等级 | | role_vip | string | 必须 | 0|角色vip等级 |
| role_id | string | 必须 |0| 角色ID | | role_id | string | 必须 |0| 角色ID |
> 支付回调通知
### 8、支付回调通知<a name="sec8"></a>
##### 接口说明
> 需要游戏服务端完成该接口,接收平台充值成功的信息。 > 需要游戏服务端完成该接口,接收平台充值成功的信息。
...@@ -598,13 +421,10 @@ function payNotify(){ ...@@ -598,13 +421,10 @@ function payNotify(){
payNotify(); payNotify();
``` ```
### 9、角色上报<a name="sec9"></a> ### 2.4.5 SDK角色上报<a name="sec2.4.5"></a>
#### 调用示例<a name="sec9.1"></a>
``` ```
GameInfoSetting setting=new GameInfoSetting();
GameInfoSetting setting=new GameInfoSetting();
GameRoleInfo roleInfo=new GameRoleInfo(); GameRoleInfo roleInfo=new GameRoleInfo();
roleInfo.setEvent("create");//事件类型,online: 角色登录, create: 创建角色,level_up: 提升等级,offline: 角色退出,other: 其他,delete: 删除角色 roleInfo.setEvent("create");//事件类型,online: 角色登录, create: 创建角色,level_up: 提升等级,offline: 角色退出,other: 其他,delete: 删除角色
roleInfo.setServer_id("100001");//区服ID roleInfo.setServer_id("100001");//区服ID
...@@ -625,7 +445,7 @@ payNotify(); ...@@ -625,7 +445,7 @@ payNotify();
roleInfo.setSponsor_level("12");//赞助等级/会员等级 roleInfo.setSponsor_level("12");//赞助等级/会员等级
roleInfo.setReiki_num("12"); //灵符值 roleInfo.setReiki_num("12"); //灵符值
//没有官邸等级之类传请传空 //没有官邸等级之类传请传空
roleInfo.setMain_city_level("大司马");//官邸等级 roleInfo.setMain_city_level("大司马");//官邸等级
roleInfo.setPower("阔克萨斯");//国家 roleInfo.setPower("阔克萨斯");//国家
roleInfo.setChapter_index("12");//章节等级 roleInfo.setChapter_index("12");//章节等级
setting.setRole(roleInfo); setting.setRole(roleInfo);
...@@ -641,11 +461,11 @@ payNotify(); ...@@ -641,11 +461,11 @@ payNotify();
} }
}); });
```
#### 参数字段说明<a name="sec9.2"></a> ```
> 参数说明
> | 参数 | 必选 | 类型 | 默认值 | 说明 | > | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :---------------------------------------------------------- | :---- | :----- | :----- | :----------- | > | :---------------------------------------------------------- | :---- | :----- | :----- | :----------- |
> | event | true | String | other | 事件类型 | > | event | true | String | other | 事件类型 |
...@@ -678,8 +498,7 @@ payNotify(); ...@@ -678,8 +498,7 @@ payNotify();
| recharge | 角色充值 | | recharge | 角色充值 |
| other | 其他 | | other | 其他 |
### 行为角色上报 > 行为角色上报
``` ```
...@@ -746,50 +565,38 @@ payNotify(); ...@@ -746,50 +565,38 @@ payNotify();
> | mail | 邮件操作 | > | mail | 邮件操作 |
### 2.4.6 退出游戏程序<a name="sec2.4.6"></a>
```
public void exitApp()
``` ```
1、退出应用程序弹出提示框。 @Override
#### 调用示例<a name="sec11.2"></a>
```
@Override
public void onBackPressed() { public void onBackPressed() {
GameService.getInstance().exitApp(); GameService.getInstance().exitApp();
} }
``` ```
- 说明:onBackPressed方法调用
### 12 gradle依赖说明<a name="sec12"></a>
1、打包arr依Glide库需要在主工程中添加依赖
2、如遇到OKhttp无法下载下来,请按照下方依赖进行添加
``` > 游戏内有切换账号按钮,可调用outGameLogin方法,此方法不是必须,选择使用,退出登录成功后再初始化SKD方法中监听回调信息,状态码3
api 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.squareup.okhttp3:okhttp:3.10.0'
``` ```
GameService.getInstance().outGameLogin(new OnLogoutListener() {
@Override
public void logoutSuccess(Object s) {
}
@Override
public void logoutError(Object s) {
}
});
### 13 apk打包<a name="sec13"></a> ```
1.sdk 的代码已经经过混淆,请勿混淆sdk的代码<a name="sec13.1"></a>
2、打包apk签名机制需要勾选V1、V2签名<a name="sec13.2"></a>
3、sdk代码已经经过混淆,请不要再次混淆sdk代码,demo会贴出SDK混淆代码,可复制到自己混淆中(具体请参考demo)
### 14 服务端接口 调用方直接使用http 调用接口:<a name="sec14"> ### 5 服务端接口 调用方直接使用http 调用接口:<a name="sec5">
### 接口地址 ### 接口地址
...@@ -878,12 +685,3 @@ public void exitApp() ...@@ -878,12 +685,3 @@ public void exitApp()
return json_decode($data, true); return json_decode($data, true);
} }
``` ```
###调用广告方法
```
GameService.getInstance().showRewardVideo("901121430");
```
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论