云游戏接入说明

目录


1. 更新manifest配置

如果以 aar 形式接入 YSDK,可跳过当前配置;如果是以 jar 形式接入 YSDK,CP 需要在AndroidManifest中,做如下声明(直接拷贝如下代码即可):

<activity
        android:name="com.tencent.ysdk.module.user.impl.freelogin.FreeLoginInfoActivity"
        android:configChanges="orientation|screenSize|keyboardHidden"
        android:exported="true"
        android:theme="@android:style/Theme.Translucent.NoTitleBar">
    <!-- TODO GAME 这里为解析外部传入的登录信息,为云设备或者沙盒游戏宿主所调用,这里scheme中tencentysdk的后缀是包名 -->
    <intent-filter>
        <action android:name="android.intent.action.VIEW" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="android.intent.category.BROWSABLE" />
        <data android:scheme="tencentysdk${applicationId}" />
    </intent-filter>
</activity>

2. 云游戏能力-自动登录(必接)

为了减少用户操作,在每次进入云游戏时,登陆界面展示 or 弹出「登陆框」前,通过 YSDKApi#getLoginRecordWithFreeLogin 做「自动登录」。其中YSDKApi#getLoginRecordWithFreeLogin 是在YSDKApi# getLoginRecord 的基础上进行了封装,具体功能如下:
1)正常获取「本地登陆态」(功能同YSDKApi# getLoginRecord);
2)如果没有登陆态,且当前环境为云游戏,则尝试做「登陆透传」。这样可以做到绕过登陆框/登陆界面,「自动登陆」;
3)该接口,只建议在启动时使用,其他场景如需获取「本地登陆态」请使用 YSDKApi# getLoginRecord;

用法示例如下:
UserLoginRet userLoginRet = new UserLoginRet();
// 该接口会在获取登陆态后,如果当前没有登陆态,且当前环境为云游戏,则尝试做云游戏登陆;
YSDKApi.getLoginRecordWithFreeLogin(userLoginRet);
if (userLoginRet.flag != BaseRet.RET_SUCC) {
// 登陆不成功,走「游戏原有的登陆逻辑」;
} else {
// 登陆成功,则跳过「游戏的登陆界面 or 登陆弹窗」,进入具体的游戏;
// 另外,接入了YSDKApi#queryUserInfo 获取「用户信息」的游戏 CP 需要关注:由于云游戏获取到的「用户信息」(UserRelationRet)为null,因此在 YSDKApi#queryUserInfo 接口回调信息(UserRelationListener#OnRelationNotify)为空时,不做 logout, 否则会造成登陆失败;
}

可参考 Demo MainActivity中的mockFreeLogin(注:mockFreeLogin只模拟了弹窗形式的「自动登录」,「登陆界面」的「自动登录」需参考以上的伪代码):

3. 云游戏checkList

1)manifest是否已经更新;
2)「自动登录」是否接入正常;
3)接入「自动登录」后,非云游戏的「登陆能力」是否正常;

注:云游戏其他问题,可参考文档:云游戏常见问题Q&A

以上信息是否解决您的问题?

Copyright © 1998 - 2021 Tencent. All Rights Reserved.

腾讯公司 版权所有

返回顶部