提交 c23dfa89 作者: 张峰

添加demo和文档

上级 7ae87da2
# 国内游戏鸿蒙客户端sdk对接文档 # 国内游戏鸿蒙客户端sdk对接文档
...@@ -58,16 +58,16 @@ ohpm install zwgame@0.3.7 ...@@ -58,16 +58,16 @@ ohpm install zwgame@0.3.7
2.宿主app的工程里,EntryAbility的onWindowStageCreate()方法里加入如下代码: 2.宿主app的工程里,EntryAbility的onWindowStageCreate()方法里加入如下代码:
`` ``
SDKToolsManager.getInstance().initSDK(windowStage,'深海花园游戏账号登录',$r('app.media.ic_float'),this.context,{ setTimeout(()=>{
SDKToolsManager.getInstance().initSDK(windowStage,'深海花园游戏账号登录',$r('app.media.ic_float'),this.context, {
getPrivacyCallBack: (data: boolean): void => { getPrivacyCallBack: (data: boolean): void => {
if (data) { if (data) {
// 值为true代表同意 // 值为true代表同意
LogUtil.info('zfcs', '用户点击了隐私弹框的同意按钮') LogUtil.info('zfcs', '用户点击了隐私弹框的同意按钮')
} }
} } })
}) },500)
`` ``
其中必传的四个参数,windowStage 对应window.WindowStage;thirdInfo: 三方账号信息名称;customerIcon: 三方游戏icon;context 对应 common.UIAbilityContext 其中必传的四个参数,windowStage 对应window.WindowStage;thirdInfo: 三方账号信息名称;customerIcon: 三方游戏icon;context 对应 common.UIAbilityContext
...@@ -96,7 +96,8 @@ SDKToolsManager.getInstance().onForeground() ...@@ -96,7 +96,8 @@ SDKToolsManager.getInstance().onForeground()
7.sdk登录的方法: 7.sdk登录的方法:
其中:SDKToolsManager.getInstance() 为获取当前工具的单例对象;showSdkLogin()的对应的参数依次为:当前宿主的上下文、华为联合登陆面板展示的游戏登录的标题内容、游戏图标(图标大小不能超过35KB)、是否显示悬浮球的状态回调接口(true:显示悬浮球;false:不显示悬浮球)、关闭华为联合登录面板的回调接口(1002000016是统一错误码,代表关闭了华为联合登录面板) 其中:SDKToolsManager.getInstance() 为获取当前工具的单例对象;showSdkLogin()的对应的参数依次为:当前宿主的上下文、华为联合登陆面板展示的游戏登录的标题内容、游戏图标(图标大小不能超过35KB)、是否显示悬浮球的状态回调接口(true:显示悬浮球;false:不显示悬浮球)、关闭华为联合登录面板的回调接口(1002000016是统一错误码,代表关闭了华为联合登录面板)
````
```
SDKToolsManager.getInstance() SDKToolsManager.getInstance()
.showSdkLogin(this.getUIContext(), '深海花园游戏账号登录', $r('app.media.ic_float'), { .showSdkLogin(this.getUIContext(), '深海花园游戏账号登录', $r('app.media.ic_float'), {
getBooleanData: (isShowFloatBall: boolean): void => { getBooleanData: (isShowFloatBall: boolean): void => {
...@@ -109,7 +110,7 @@ SDKToolsManager.getInstance() ...@@ -109,7 +110,7 @@ SDKToolsManager.getInstance()
LogUtil.info('test', '用户关闭了联合登录面板') LogUtil.info('test', '用户关闭了联合登录面板')
} }
} }) } })
```` ```
8.sdk退出登录: 8.sdk退出登录:
该方法的入参为:是否显示悬浮球的接口回调,其中isShowFloatBall:false代表不显示悬浮球 该方法的入参为:是否显示悬浮球的接口回调,其中isShowFloatBall:false代表不显示悬浮球
...@@ -142,26 +143,25 @@ AppUtils.createOrderWithHuaWei(jsonStr, '1', '2', this.amount,this.product_price ...@@ -142,26 +143,25 @@ AppUtils.createOrderWithHuaWei(jsonStr, '1', '2', this.amount,this.product_price
> 下单支付字段说明 > 下单支付字段说明
| 名称 | 类型 | 是否必须 | 默认值 | 说明 |
| 名称 | 类型 | 是否必须 | 默认值|说明 | |:------------- | ------:| ----:| ------:| --------------------:|
|:--------------|-------:|-----:|-----:|-----------------:| | cp_order_id | string | 必须 | | CP订单ID |
| cp_order_id | string | 必须 || CP订单ID | | amount | number | 必须 | | 商品总价(单位:分 |
| amount | number | 必须 | |商品总价(单位:分 | | product_price | number | 必须 | | 商品价格(整数,后台自动换算分) |
| product_price | number | 必须 | |商品价格(整数,后台自动换算分) | | product_id | String | 必须 | 0 | 商品ID |
| product_id | String | 必须 |0| 商品ID | | product_cnt | number | 必须 | | 商品数量 |
| product_cnt | number | 必须 | |商品数量 | | product_name | string | 必须 | "" | 商品名称 |
| product_name | string | 必须 |""| 商品名称 | | product_desc | string | 非必须 | "" | 商品描述 |
| product_desc | string | 非必须 |""| 商品描述 | | ext | string | 必须 | "" | 订 调用方定义 单额外信息用(json) |
| ext | string | 必须 |""| 订 调用方定义 单额外信息用(json)| | event | string | 必须 | "" | 事件 |
| event | string | 必须 |""| 事件| | server_id | string | 必须 | 0 | 区服id |
| server_id | string | 必须 |0| 区服id | | server_name | string | 必须 | "" | 区服名称 |
| server_name | string | 必须 |""| 区服名称| | cp_role_id | string | 必须 | cp角色id | |
| cp_role_id | string | 必须 | cp角色id | | role_name | string | 必须 | "" | 角色名称 |
| role_name | string | 必须 | ""|角色名称 | | role_level | string | 必须 | 0 | 角色等级 |
| role_level | string | 必须 |0| 角色等级 | | role_vip | string | 必须 | 0 | 角色vip等级 |
| role_vip | string | 必须 | 0|角色vip等级 | | role_id | string | 必须 | 0 | 角色ID |
| role_id | string | 必须 |0| 角色ID | | 10.角色上报的方法: | | | | |
10.角色上报的方法:
`` ``
const jsonStr = '{"cp_account":"cp_account","role":{"event":"create","server_id":"serviceId","server_name":"server_name","cp_role_id":"cpRoleId","role_name":"role_name","role_level":"role_level","role_vip":"role_vip","combat_num":"combatnum","online_time":"online_time","reiki_num":"reikinum","attack":"attack","profession":"profession","gang_name":"gang_name","trans_level":"translevel","sponsor_level":"sponsorlevel","main_city_level":"maincitylevel","power":"power","chapter_index":"chapterindex"}}' const jsonStr = '{"cp_account":"cp_account","role":{"event":"create","server_id":"serviceId","server_name":"server_name","cp_role_id":"cpRoleId","role_name":"role_name","role_level":"role_level","role_vip":"role_vip","combat_num":"combatnum","online_time":"online_time","reiki_num":"reikinum","attack":"attack","profession":"profession","gang_name":"gang_name","trans_level":"translevel","sponsor_level":"sponsorlevel","main_city_level":"maincitylevel","power":"power","chapter_index":"chapterindex"}}'
...@@ -174,7 +174,7 @@ AppUtils.onRole('serviceId', 'cpRoleId', jsonStr); ...@@ -174,7 +174,7 @@ AppUtils.onRole('serviceId', 'cpRoleId', jsonStr);
参数说明 参数说明
> | 参数 | 必选 | 类型 | 默认值 | 说明 | > | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | :---------------------------------------------------------- | :---- | :----- | :----- | :----------- | > |:----------- |:----- |:------ |:----- |:------------- |
> | event | true | String | other | 事件类型 | > | event | true | String | other | 事件类型 |
> | server_id | true | String | - | 区服ID | > | server_id | true | String | - | 区服ID |
> | server_name | true | String | - | 区服名称 | > | server_name | true | String | - | 区服名称 |
...@@ -190,12 +190,11 @@ AppUtils.onRole('serviceId', 'cpRoleId', jsonStr); ...@@ -190,12 +190,11 @@ AppUtils.onRole('serviceId', 'cpRoleId', jsonStr);
> | profession | false | String | - | 职业 | > | profession | false | String | - | 职业 |
> | gang_name | false | String | - | 帮会(行会)名称 | > | gang_name | false | String | - | 帮会(行会)名称 |
> | trans_level | false | Int | 0 | 转生等级 | > | trans_level | false | Int | 0 | 转生等级 |
>
>
事件类型event 事件类型event
| EVENT | 说明 | | EVENT | 说明 |
| -------- | -------- | | -------- | ---- |
| create | 创建角色 | | create | 创建角色 |
| online | 角色上线 | | online | 角色上线 |
| offline | 角色下线 | | offline | 角色下线 |
...@@ -212,15 +211,12 @@ SuspensionV2().visibility(this.shoudleShowWindow ? Visibility.Visible : Visibili ...@@ -212,15 +211,12 @@ SuspensionV2().visibility(this.shoudleShowWindow ? Visibility.Visible : Visibili
.width('100%') .width('100%')
`` ``
12.获取player_id的方法: 12.获取player_id的方法:
`` ``
UserSDKManager.getInstance().getUserLoginInfo() UserSDKManager.getInstance().getUserLoginInfo()
`` ``
这个方法获取本地的缓存的数据,里面有player_id这个字段,遍历取'player_id'对应的值就可以拿到 这个方法获取本地的缓存的数据,里面有player_id这个字段,遍历取'player_id'对应的值就可以拿到
13.服务端接口 调用方直接使用http 调用接口:<a name="sec5"> 13.服务端接口 调用方直接使用http 调用接口:<a name="sec5">
### 接口地址 ### 接口地址
...@@ -232,33 +228,32 @@ UserSDKManager.getInstance().getUserLoginInfo() ...@@ -232,33 +228,32 @@ UserSDKManager.getInstance().getUserLoginInfo()
> **Headers**: > **Headers**:
> >
> | 参数 | 必选 | 参数值 | 说明 | > | 参数 | 必选 | 参数值 | 说明 |
> | ------------ | ---- | ---------------- | ----------------------------------- | > | ------------ | ---- | ---------------- | ---------------------- |
> | Content-Type | true | application/json | | > | Content-Type | true | application/json | |
> | User-Token | true | | 登录后由 SDK 返回的user_token | > | User-Token | true | | 登录后由 SDK 返回的user_token |
> **Body**: > **Body**:
> >
> | 参数 | 必选 | 类型 | 默认值 | 说明 | > | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | --------- | ---- | ------ | ------ | --------------------------------- | > | --------- | ---- | ------ | --- | --------------------------------------------- |
> | game_id | true | Int | - | 游戏接入时分配的游戏ID(建议从user_token中取,#后面的数字即为game_id)| > | game_id | true | Int | - | 游戏接入时分配的游戏ID(建议从user_token中取,#后面的数字即为game_id) |
> | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id | > | player_id | true | Int | - | 游戏登录后由 SDK 返回的player_id |
> | sign | true | String | - | 参数签名 | > | sign | true | String | - | 参数签名 |
##### 返回参数 ##### 返回参数
> | 参数 | 必选 | 类型 | 默认值 | 说明 | > | 参数 | 必选 | 类型 | 默认值 | 说明 |
> | ----------- | ----- | ------ | ------ | -------------- | > | ----------- | ----- | ------ | --- | -------------------- |
> | status_code | true | Int | - | 状态码 1 正常在线,否则不允许登录| > | status_code | true | Int | - | 状态码 1 正常在线,否则不允许登录 |
> | msg | true | STRING | - | 返回信息 | > | msg | true | STRING | - | 返回信息 |
> | data | false | OBJECT | [] | 返回数据(空) | > | data | false | OBJECT | [] | 返回数据(空) |
>
##### 接口说明 ##### 接口说明
调用方检测当前用户是否登录过,在线状态; 如果返回参数不是正常登录则不允许登录游戏。 调用方检测当前用户是否登录过,在线状态; 如果返回参数不是正常登录则不允许登录游戏。
##### 请求示例 ##### 请求示例
```php ```php
<php? <php?
public function checkLogin(){ public function checkLogin(){
...@@ -311,3 +306,14 @@ UserSDKManager.getInstance().getUserLoginInfo() ...@@ -311,3 +306,14 @@ UserSDKManager.getInstance().getUserLoginInfo()
} }
``` ```
QA:
1.华为登录失败:原因:图标大小超过了35KB。
2.支付失败:原因:总价价格传入不对,且数量默认只能是1件。
3.登录错误码1002000016:华为登录面板关闭的统一代码返回。
4.demo里的代码包含了游戏集成的所有步骤,请严格按照demo来集成。
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论