更新日期:2025-04-25QuickGame(鸿蒙)客户端接入文档
1.1 将 gamesdkLibrary.har 包放在⼯程的 libs ⽬录下:
1.2 在 App Module 的 oh-package.json5中,添加依赖项:
如下图:
"requestPermissions": [
{}],
如下图:
1.4 在 App Module 的 module.json5的module节点增加如下client_id和app_id属性配置,⽤于华为登录和内购的应⽤身份鉴权:
"metadata": [
{
"name": "client_id",
"value": "xxxxxxxxx"
}
]
如下图:
以上内容可参考Demo的实现
1.6 华为后台获取Client ID和APP ID:
} from 'gamesdklibrary'
// 创建GameSDKManager实例对象 ,参数传SDK后台的productCode参数 gamesdkInstance: GameSDKManager = GameSDKManager.getInstance('44021448506430380961470188790224')
this.gamesdkInstance.initWithProductCode('44021448506430380961470188790224')
SDK官方登录接口:
//打开登录界⾯ this.gamesdkInstance.login(this.getUIContext())
华为账号登录接⼝:
//打开华为登录界⾯ this.gamesdkInstance.huaweiLogin(this.getUIContext())
华为后台开发者管理中⼼-授权管理 ,需要申请获取⼿机号权限
SDK后台游戏管理 -功能配置⾥需配置鸿蒙参数
//创建订单数据对象 let orderInfo: GameSDKOrderInfo = { productId:'testProductId', productName: 'testProductName', cpOrderID: 'testCpOrderID', amount: ‘6’,//单位元 callbackUrl: 'testCallbackUrl', extrasParams: 'testExtrasParams' } //调⽤⽀付 this.gamesdkInstance.payWithOrderInfo(orderInfo)
SDK后台游戏管理 -> ⽀付配置需添加鸿蒙⽀付并配置参数:
//创建⻆⾊数据对象 let roleInfo: GameSDKRoleInfo = { roleId:'testRoleId', roleName: 'testRoleName', serverId: 'testServerId', serverName: 'testServerName', roleLevel: 'testRoleLevel', vipLevel: 'testVipLevel' } //上传游戏⻆⾊ this.gamesdkInstance.updateRoleInfo(roleInfo)
//打开隐私弹窗 this.gamesdkInstance.openPrivacyDialog(this.getUIContext())
//如果是华为⽤户登录可解绑 if (this.gamesdkInstance.isHuaweiUser()) { this.gamesdkInstance.unbindHuaweiAccount() }
this.gamesdkInstance.logout()
this.gamesdkInstance.isHuaweiTransferAccount()
//注册SDK初始化回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_INIT_SUCCESS', (data: GameSDKCallBackData) => { console.log(`SDK初始化成功:message:${data.message}`) }); //注册SDK登录回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_LOGIN_SUCCESS', (data: GameSDKCallBackData) => { //回调返回⽤户信息: console.log(`SDK登录成功:uid:${data.uid}, userName:${data.userName}, token:${data.token},`) //通过GameSDKUser⽤户类获取⽤户信息 promptAction.showDialog({ message: `uid:${GameSDKUser.getInstance().uid}, userName:${GameSDKUser.getInstance().userName}, token:${GameSDKUser.getInstance().token}` }) }); //注册SDK⽀付成功回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_PAY_SUCCESS', (data: GameSDKCallBackData) => { //回调返回⽀付成功信息: console.log(`SDK⽀付成功:${data.message}:orderNo:${data.orderNo}, productId:${data.productId}, extrasParams:${data.extrasParams}`) }); //注册SDK⽀付失败回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_PAY_FAIL', (data: GameSDKCallBackData) => { //回调返回⽀付失败信息: console.log(`SDK⽀付失败:${data.message}:orderNo:${data.orderNo}, productId:${data.productId}, extrasParams:${data.extrasParams}`) }); //注册隐私弹窗同意回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_AGREE_PRIVACY', (data: GameSDKCallBackData) => { console.log(`点击了同意隐私协议:message:${data.message} ,isAgreePrivacy:${data.isAgreePrivacy}`) }); //注册隐私弹窗不同意回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_REFUSE_PRIVACY', (data: GameSDKCallBackData) => { console.log(`点击了不同意隐私协议:message:${data.message} ,isAgreePrivacy:${data.isAgreePrivacy}`) }); //注册退出登录回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_LOGOUT_SUCCESS', (data: GameSDKCallBackData) => { console.log(`退出登录成功`) }); //注册解绑华为账号回调事件 NotificationCenter.getInstance().addObserver('GAMESDK_NOTIFICATION_KEY_UNBIND_SUCCESS', (data: GameSDKCallBackData) => { console.log(`华为账号解绑成功`) });
//初始化微信登录 this.gamesdkInstance.initWxLogin("wxd6bxxxxxxxxxxx", "8606969ec8eb7ebxxxxxxxxxxxxx") //初始化QQ登录 this.gamesdkInstance.initQQLogin("1022xxxxxx", "iNr8Hxxxxxxxx") //在EntryAbility中响应来⾃微信/QQ的回调 onNewWant(want: Want, launchParam: AbilityConstant.LaunchParam): void { GameSDKManager.getInstance('').handleAuthResult(want) }
注意:
微信登录时⼯程需要使⽤⼿动签名,不然会报错:"由于应⽤BundleID信息校验不通过,⽆法使⽤微信登录"
QQ后台需要正确配置鸿蒙应⽤签名,不然会报错:"error authResponse is null"
参考⽂档:https://wiki.connect.qq.com/harmonyos_sdk%e5%b8%b8%e8%a7%81%e9%97%ae%e9%a2%98
module.json5 配置⽂件修改
// module.json5 的"module"节点下配置 querySchemes "querySchemes": [ "https", "qqopenapi", "weixin" ] // 在 Ability 的 skills 节点中配置scheme "skills": [ { "entities": [ "entity.system.browser" ], "actions": [ "ohos.want.action.viewData" ], "uris": [ { "scheme": "qqopenapi", // 接收 QQ 回调数据 "host": "(替换申请的互联 appId)", // 业务申请的互联 appId,如果填错会导致 QQ ⽆法回调 "path": "auth", "linkFeature": "Login", } ] } ]
在业务 Ability.onNewWant() 中调⽤SDK如下⽅法:
//在EntryAbility中响应来⾃微信/QQ的回调 GameSDKManager.getInstance('').handleAuthResult(want)
当需要修改sdk的默认域名时,打开⼯程找到sdk配置⽂件,⽂件路径:
oh_modules/gamesdklibrary/src/main/resources/rawfile/sdk_config.json,然后修改⽂件中mainurl对应的value值
可参考SDK Demo 接⼊
李先生:13880511661
QQ:48157910
赵先生:15390049857
QQ:1077535763
孙女士:13551010407
QQ:1799614139
QQ群:698731538