Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zw_game_sdk
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
日程表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
提交
问题看板
Open sidebar
zwwl
zw_game_sdk
Commits
7f1d0253
提交
7f1d0253
authored
4月 11, 2022
作者:
刘添
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'Android' 到 'release'
Android 查看合并请求 zwwl/zw_game_sdk!4
上级
541a0b31
7384d542
隐藏空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
505 行增加
和
0 行删除
+505
-0
AndroidSDK对接说明文档.md
AndroidSDK对接说明文档.md
+505
-0
AndroidSDK示例.zip
AndroidSDK示例.zip
+0
-0
没有找到文件。
AndroidSDK对接说明文档.md
0 → 100644
浏览文件 @
7f1d0253
## GameSDKV1.0文档接入使用
## GameSDKV1.0文档接入使用
[
目录
](
#sec1
)
1
[
对接说明
](
#sec1
)
2
[
获取对接SDK
](
#sec2
)
[
说明
](
#sec2.1
)
3
[
导入配置SDK资源AndroidStudio
](
#sec3
)
[
添加依赖
](
#sec3.1
)
[
maven配置
](
#sec3.2
)
[
示例
](
#sec3.2
)
4
[
配置清单文件
](
#sec4
)
[
清单配置说明
](
#sec4.1
)
5
[
初始化 SDK
](
#sec5
)
[
SDK调用说明
](
#sec5.1
)
[
application
](
#sec5.2
)
[
调用示例
](
#sec5.3
)
6
[
登录
](
#sec6
)
[
接口说明
](
#sec6.1
)
[
参数说明
](
#sec6.2
)
[
调用示例
](
#sec6.3
)
7
[
调起支付页面
](
#sec7
)
[
调用说明
](
#sec7.1
)
[
接口参数
](
#sec7.2
)
[
调用示例
](
#sec7.3
)
[
下单支付字段说明
](
#sec7.4
)
8
[
支付回调结果
](
#sec8
)
[
支付文档说明
](
#sec8.1
)
9
[
角色上报
](
#sec9
)
[
调用示例
](
#sec9.1
)
[
参数字段说明
](
#sec9.2
)
10
[
退出登录
](
#sec10
)
[
接口回调说明
](
#sec10.1
)
[
退出成功
](
#sec10.3
)
[
退出失败
](
#sec10.4
)
[
调用示例
](
#sec10.5
)
11
[
退出应用
](
#sec11
)
[
调用方法
](
#sec11.1
)
[
调用示例
](
#sec11.1
)
12
[
gradle依赖
](
#sec12
)
13
[
apk打包
](
#sec13
)
[
混淆说明
](
#sec13.1
)
[
打包说明
](
#sec13.2
)
#### 1、对接说明 <a name="sec1"></a>
1.1、此对接文档只适合与sdkv1.0版本。
1.2、所有SDK功能在GameSDK类中,可通过初始化获取改类对象,后续所有更新功能都调用这个类中方法完成
1.3、文档中所有GameSDK指S从平台获取arr文件
### 2、对接SDK<a name="sec2"></a>
从平台处获取对接SDK,android studio版本,选择V1.0的版本接入。
<a
name=
"sec2.1"
></a>
### 3、导入配置SDK资源Androidstudio项目<a name="sec3"></a>
#### 1.1、在app工程目录build.gradle中添加依赖<a name="sec3.1"></a>
```
implementation 'com.zw.game.sdk:gameSDk:1.0.0'
```
#### 1.2、在主工程中添加maven<a name="sec3.2"></a>
```
maven { url 'http://nexus.zwwlkj01.top/repository/android-game/' }
```
#### 示例<a name="sec3.3"></a>


### 4、配置清单文件(具体请参考demo)<a name="sec4"></a>
1、参考demo中的清单文件配置,主要分为权限配置、sdk所需的组件配置,meta信息配置。(权限部分SDK已经适配,访问文件权限,Android10网络访问权限,安装适配等均已适配,但不包含所有设备)
<a
name=
"sec4.1"
></a>
> **参数说明**:
| 参数名 | 说明 |
|:--------| -------------:|
| game_id | 游戏唯一标识,由平台方提供 |
```
<meta-data
android:name="game_id"
android:value="149" />
```
### 5、初始化SDK<a name="sec5"></a>
1、sdk初始化操作方法,最先调用,需要在主线程调用,最好游戏主界面activity中调用。此方法的可多次调用用于获得sdk全局管理器。
<a
name=
"sec5.1"
></a>
2、调用示例:在游戏主界面activity的onCreate方法中调用
3、自己主工程application需要继承GameSdkApplication
> **application调用示例**:<a name="sec5.2"></a>
```
public class App extends GameSdkApplication {
@Override
public void onCreate() {
super.onCreate();
}
}
```
> **初始化示例**:<a name="sec5.3"></a>
```
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
GameSdk.getInstance().init(this);
}
```
### 6、登录<a name="sec6"></a>
1、添加登录回调监听
<a
name=
"sec6.1"
></a>
```
public void addLoginListener(OnLoginListener onLoginListener)
```
-
说明:在登陆前必须注册登陆回调监听,用于接收登陆结果,登录成功返回token
#### 参数说明<a name="sec6.2"></a>
| 参数 | 说明|
| :-------- | -------------: |
| OnLoginListener | 登录回调接口 |
-
参数类说明:OnLoginListener需要实现两个方法:
> **登录成功**:
```
void loginSuccess(Object data);
```
> **登录成功返回参数**:
| 参数 | 类型 | 说明 |
| :-------- | -------------: | -------------: |
| status_code | int| 状态码 |
| data| object | 返回数据 |
| msg| String| 描述信息 |
| data| object | 返回数据 |
|
data | object | 用户数据 |
|
player_id | String | 玩家ID |
|
avatar | String | 用户头像 |
|
mobile | String | 手机号 |
|
has_identify | boolean | 是否实名 |
> **登录失败**:
```
void loginError(Object data);
```
> **登录失败返回参数**:
| 参数 | 类型 | 说明 |
| :-------- | -------------: | -------------: |
| status_code | int| 状态码 |
| data| object | 返回数据 |
| msg| String| 描述信息 |
| data| object | 返回数据 |
#### 调用示例<a name="sec6.3"></a>
```
GameSdk.getInstance().addLoginListener(this, new OnLoginListener() {
@Override
public void loginSuccess(Object data) {
Log.e("loginSuccess",data+"");
//显示悬浮球(根据游戏需求显示,可以在初始化显示,可以登录成功之后显示)
GameSdk.getInstance().show(SdkDemoActivity.this);
}
@Override
public void loginError(Object data) {
}
});
```
### 7、调起支付页面<a name="sec7"></a>
1、调起支付页面方法
<a
name=
"sec7.1"
></a>
```
public void showPay(CustomPayParam payParam, OnPaymentListener paymentListener)
```
### 接口参数<a name="sec7.2"></a>
| 参数 | 说明 |
|:----|-----:|
|payParam|支付参数|
|paymentListener|回调接口|
#### 调用示例<a name="sec7.3"></a>
```
CustomPayParam data=new CustomPayParam();
CustomPayParam.RoleBean role=new CustomPayParam.RoleBean();
CustomPayParam.OrderBean orderInfo=new CustomPayParam.OrderBean();
data.setRole_id("425");
role.setEvent("other");
role.setServer_id("100001");
role.setRole_name("主宰传奇");
role.setCp_role_id("2413930833603897345");
role.setServer_name("主宰服");
role.setRole_level("83");
role.setRole_vip("0");
orderInfo.setCp_order_id("312223131");
orderInfo.setAmount("1");
orderInfo.setProduct_price("1");
orderInfo.setProduct_id("101");
orderInfo.setProduct_cnt("1");
orderInfo.setProduct_name("8元档充值");
orderInfo.setProduct_desc("商品");
orderInfo.setExt("测试数据");
data.setRole(role);
data.setOrder(orderInfo);
GameSdk.getInstance().showPay(this,data, new OnPaymentListener() {
@Override
public void Success(String msg) {
}
@Override
public void Failed(String msg) {
}
});
```
#### 下单支付字段说明<a name="sec7.4"></a>
| 名称 | 类型 | 是否必须 | 说明 |
|:--------------|-------:|-----:|-----------------:|
| cp_order_id | string | 非必须 | CP订单ID |
| amount | number | 非必须 | 商品总价(单位:分 |
| product_price | number | 非必须 | 商品价格(整数,后台自动换算分) |
| product_id | String | 非必须 | 商品ID |
| product_cnt | number | 非必须 | 商品数量 |
| product_name | string | 非必须 | 商品名称 |
| product_desc | string | 非必须 | 商品描述 |
| ext | string | 非必须 | 订 单额外信息用(json)|
| event | string | 非必须 | 事件|
| server_id | string | 非必须 | 区服id |
| server_name | string | 非必须 | 区服名称|
| cp_role_id | string | 非必须 | cp角色id |
| role_name | string | 非必须 | 角色名称 |
| role_level | string | 非必须 | 角色等级 |
| role_vip | string | 非必须 | 角色vip等级 |
| role_id | string | 非必须 | 角色ID |
### 8、支付回调通知<a name="sec8"></a>
1.
1、支付回调通知请参考对接文档H5 SDK 对接文档-v1.0、服务端接入2.3
<a
name=
"sec8.1"
></a>
### 9、角色上报<a name="sec9"></a>
#### 调用示例<a name="sec9.1"></a>
```
GameInfoSetting setting=new GameInfoSetting();
setting.setCp_account("w55231582254");
GameRoleInfo roleInfo=new GameRoleInfo();
roleInfo.setCombat_num("25564");
roleInfo.setCp_role_id("24139308336038973450");
roleInfo.setEvent("create");
roleInfo.setOnline_time("15426");
roleInfo.setRole_level("15");
roleInfo.setRole_name("测试角色上报");
roleInfo.setRole_vip("23");
roleInfo.setServer_id("100001");
roleInfo.setServer_name("主宰服");
setting.setRole(roleInfo);
GameSdk.getInstance().putRoleReport(setting, new SubmitRoleInfoCallBack() {
@Override
public void onSuccess(Object o) {
}
@Override
public void onFailure(int code, String msg) {
}
});
```
#### 参数字段说明<a name="sec9.2"></a>
| 名称 | 类型 | 是否必须| 说明 |
|:--------| -------------:| -------------------:|-------------:|
| role{} | object | 非必须 | 角色信息 |
| event | String | 非必须 | 事件类型,online: 角色登录, create: 创建角色,level_up: 提升等级,offline: 角色退出,other: 其他,delete: 删除角色 |
| server_id | string | 非必须 | 区服ID |
| server_name | string | 非必须 | 区服名称 |
| cp_role_id |string | 非必须 | CP角色ID |
| role_name | string | 非必须 | 角色名称 |
| role_level | number | 非必须 | 角色等级 |
| role_vip | number | 非必须 | 角色VIP等级 |
| combat_num | number | 非必须 | 角色战力 |
| online_time | number | 非必须 | 本次在线时长 |
| cp_account | number | 非必须 | CP账户 |
### 10、退出登录<a name="sec9"></a>
#### 添加登出回调监听<a name="sec10.1"></a>
```
public void addLogoutListener(OnLogoutListener onLogoutListener)
```
1、在退出登陆前必须注册退出登陆回调监听,用于接收退出登陆,或者登陆过期的退出登陆结果。
2、 参数类说明:OnLogoutListener需要实现两个方法:
3、 退出登陆成功:
4、退出登录成功并返回所有信息与code状态
#### 退出登录成功<a name="sec10.3"></a>
```
public void logoutSuccess(String s);
```
#### 退出登录失败<a name="sec10.4"></a>
```
public void logoutError(String msg);
```
#### 调用示例<a name="sec10.5"></a>
```
GameSdk.getInstance().addLogoutListener(new OnLogoutListener() {
@Override
public void logoutSuccess(String s) {
}
@Override
public void logoutError(String s) {
}
});
```
-
说明:在需要退出登陆时可调用此方法,注意此方法为退出,并不会调出登陆界面
### 11、退出应用弹框<a name="sec10"></a>
1、添加退出回调监听
#### 调用方法<a name="sec11.1"></a>
```
public void exitApp(ExitAppListener listener)
```
1、退出应用程序弹出提示框。
#### 调用示例<a name="sec11.2"></a>
```
@Override
public void onBackPressed() {
GameSdk.getInstance().exitApp(this, data -> {
});
}
```
-
说明:onBackPressed方法调用
### 12 gradle依赖说明<a name="sec12"></a>
1、打包arr依Glide库需要在主工程中添加依赖
```
api 'com.github.bumptech.glide:glide:4.11.0'
```
### 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)
\ No newline at end of file
AndroidSDK示例.zip
0 → 100644
浏览文件 @
7f1d0253
File added
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论