【鸿蒙游戏技术分享 第12期】如何快速配置鸿蒙游戏服务转移能力?

背景简介

HarmonyOS游戏的账号资产(角色、区服信息、游戏进度等)不会自动转移至HarmonyOS NEXT系统下,华为平台把原系统(安卓)的玩家标识playerId/openId赋值给HarmonyOS NEXT游戏的玩家标识gamePlayerId。转移前后,华为账号不会发生变化,也不涉及开发者服务器和数据库层面的变动。

关键词

鸿蒙游戏、游戏转移、gamePlayerId、联合登录

配置APP ID映射关系

登录AppGallery Connect平台

在“我的项目”中选择项目及项目下的应用,左侧菜单选择“构建 > 游戏服务”,在右侧点击“新增配置”。

12.1.png

填写转移应用信息

HarmonyOS NEXT游戏的APP ID与原华为安卓渠道已上架的HarmonyOS游戏的APP ID建立映射。  

12.2.png

信息项

说明

HarmonyOS NEXT游戏APP ID

请选择HarmonyOS NEXT游戏的APP ID。

HarmonyOS游戏APP ID

请选择对应原华为安卓渠道已上架的HarmonyOS游戏的APP ID。若HarmonyOS游戏未上架,请选择“不涉及”。

是否单机游戏

若游戏数据本地化存储,不依赖服务器,无法进行跨设备转移同步资产信息,则为单机游戏,请选择“是”,否则请选择“否”。

选择转移的玩家标识类型

“HarmonyOS游戏APP ID”选择“不涉及”,或单机游戏均不展示以下页面。

12.3.png

支持转移的玩家标识类型有以下几种:

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游戏的新用户。

(可选)填写开发者服务器的回调地址

12.4.png

完成后点击“确定”提交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向用户展示欢迎引导页。

12.5.png

用户点击“玩过本游戏”,Game Service Kit向用户展示联合登录面板。

12.6.jpg

用户点击“华为账号登录”,则进入登录的转移流程。

用户非首次启动HarmonyOS NEXT游戏时,Game Service Kit会延用上次的游戏登录方式(转移、关联、官方账号)。

若需要切换账号或者其他登录方式,重新调用unionLogin接口,将showLoginDialog参数设置为true,即可强制拉起联合登录面板,允许玩家重新选择华为账号登录(转移、关联)或游戏官方账号登录,如下图所示。

12.7.jpg

选择华为账号登录后,效果如下:

1.png

选择转移选项后,完成最后一步确认:

2.png

总结

转移登录流程方式登录完成之后,即可通过登录接口unionLogin回调中获取到账号标识gamePlayerId,该标识真实值等于在步骤1选择的原华为安卓渠道账号标识值,完成进度同步和资产转移即可。


更多问题可关注:

鸿蒙游戏官方网站:https://developer.huawei.com/consumer/cn/games/

公开课:华为开发者学堂

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值