Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zw_game_sdk
概览
概览
详情
活动
周期分析
版本库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
统计图
问题
0
议题
0
列表
看板
标记
里程碑
CI / CD
CI / CD
流水线
日程表
维基
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
提交
问题看板
Open sidebar
zwwl
zw_game_sdk
Commits
5394cad0
提交
5394cad0
authored
5月 15, 2026
作者:
刘添
浏览文件
操作
浏览文件
下载
差异文件
合并分支 'sdk_doc_demo' 到 'master'
添加demo和文档 查看合并请求 zwwl/zw_game_sdk!284
上级
e28e27a3
c23dfa89
显示空白字符变更
内嵌
并排
正在显示
1 个修改的文件
包含
47 行增加
和
41 行删除
+47
-41
国内游戏鸿蒙客户端sdk对接文档.md
harmony_sdk_word_demo/国内游戏鸿蒙客户端sdk对接文档.md
+47
-41
没有找到文件。
harmony_sdk_word_demo/国内游戏鸿蒙客户端sdk对接文档.md
浏览文件 @
5394cad0
# 国内游
戏鸿蒙客户端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
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论