背景简介
HarmonyOS游戏的账号资产(角色、区服信息、游戏进度等)不会自动转移至HarmonyOS NEXT系统下,华为平台把原系统(安卓)的玩家标识playerId/openId赋值给HarmonyOS NEXT游戏的玩家标识gamePlayerId。转移前后,华为账号不会发生变化,也不涉及开发者服务器和数据库层面的变动。
关键词
鸿蒙游戏、游戏转移、gamePlayerId、联合登录
配置APP ID映射关系
登录AppGallery Connect平台
在“我的项目”中选择项目及项目下的应用,左侧菜单选择“构建 > 游戏服务”,在右侧点击“新增配置”。
填写转移应用信息
HarmonyOS NEXT游戏的APP ID与原华为安卓渠道已上架的HarmonyOS游戏的APP ID建立映射。
信息项 | 说明 |
HarmonyOS NEXT游戏APP ID | 请选择HarmonyOS NEXT游戏的APP ID。 |
HarmonyOS游戏APP ID | 请选择对应原华为安卓渠道已上架的HarmonyOS游戏的APP ID。若HarmonyOS游戏未上架,请选择“不涉及”。 |
是否单机游戏 | 若游戏数据本地化存储,不依赖服务器,无法进行跨设备转移同步资产信息,则为单机游戏,请选择“是”,否则请选择“否”。 |
选择转移的玩家标识类型
“HarmonyOS游戏APP ID”选择“不涉及”,或单机游戏均不展示以下页面。
支持转移的玩家标识类型有以下几种:
playerId | 若HarmonyOS游戏确认全部玩家均使用playerId作为玩家标识,请选择“playerId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=playerId。 |
openId | 若HarmonyOS游戏确认全部玩家均使用openId作为玩家标识,请选择“openId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=openId。 |
unionId | 若HarmonyOS游戏确认全部玩家均使用unionId作为玩家标识,建议选择“openId”。选择后,HarmonyOS NEXT游戏的玩家标识gamePlayerId=openId。此时,通过转换ID将gamePlayerId(openId)换取unionId,若unionId未在游戏侧找到玩家记录,则当前玩家为HarmonyOS NEXT游戏的新用户。 |
(可选)填写开发者服务器的回调地址
完成后点击“确定”提交APP ID映射关系的审批申请。
联合登录开发
初始化成功后,游戏可调用unionLogin接口进行联合登录,Game Service Kit向玩家展示联合登录面板。
let context = getContext(this) as common.UIAbilityContext; let thirdAccountInfo1: gamePlayer.ThirdAccountInfo = { 'accountName': 'testName1', // 游戏开放给玩家接入的账号类型名字,例如“官方账号”、“xx账号”等,并不是具体某个玩家ID或开发者ID。 'accountIcon': $r('app.media.icon') // 游戏官方账号图标资源信息,注意unionLogin接口传参的所有图标总大小不要超过35KB。 }; let request: gamePlayer.UnionLoginParam = { showLoginDialog: true, thirdAccountInfos: [ thirdAccountInfo1 ] }; try { gamePlayer.unionLogin(context, request).then((result: gamePlayer.UnionLoginResult) => { hilog.info(0x0000, 'testTag', `Succeeded in logining: ${result?.accountName}`); }).catch((error: BusinessError) => { hilog.error(0x0000, 'testTag', `Failed to login. Code: ${error.code}, message: ${error.message}`); }); } catch (error) { let err = error as BusinessError; hilog.error(0x0000, 'testTag', `Failed to login. Code: ${err.code}, message: ${err.message}`); } |
UI测试体验
用户首次启动HarmonyOS NEXT游戏时,Game Service Kit向用户展示欢迎引导页。
用户点击“玩过本游戏”,Game Service Kit向用户展示联合登录面板。
用户点击“华为账号登录”,则进入登录的转移流程。
用户非首次启动HarmonyOS NEXT游戏时,Game Service Kit会延用上次的游戏登录方式(转移、关联、官方账号)。
若需要切换账号或者其他登录方式,重新调用unionLogin接口,将showLoginDialog参数设置为true,即可强制拉起联合登录面板,允许玩家重新选择华为账号登录(转移、关联)或游戏官方账号登录,如下图所示。
选择华为账号登录后,效果如下:
选择转移选项后,完成最后一步确认:
总结
转移登录流程方式登录完成之后,即可通过登录接口unionLogin回调中获取到账号标识gamePlayerId,该标识真实值等于在步骤1选择的原华为安卓渠道账号标识值,完成进度同步和资产转移即可。
更多问题可关注:
鸿蒙游戏官方网站:https://developer.huawei.com/consumer/cn/games/
公开课:华为开发者学堂