Appearance
登录相关
WARNING
在游戏登录界面,调用登录接口时, 建议游戏先判断当前是否有初始化完成。 如果未初始化完成,可以再次调用初始化接口。
登录
当玩家进入游戏登录界面、 或玩家手动点击【进入游戏】按钮并且此时玩家是未登录状态时, 游戏层可以调用登录接口。 请在UI主线程中调用该接口。
弹出SDK登录主界面,让玩家选择登录方式:
java
UGPlatform.getInstance().login(activity);如果游戏想让玩家直接游客静默登录,可以使用下面登录接口:
java
UGPlatform.getInstance().loginWithVisitor(activity);处理登录结果
当SDK登录成功或失败时,会通过UGSDKListener中下面对应的函数通知给游戏层:
java
@Override
public void onLoginSuccess(UGUser user) {
//登录成功回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
Log.d("UGSDKDemo", "sdk login success."+user.getUid());
}
@Override
public void onLoginFailed(int code, String msg) {
//登录失败回调, 可能非UI线程, 如果需要操作UI,请在UI线程中操作
MainActivity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
Toast.makeText(MainActivity.this, "login failed", Toast.LENGTH_LONG).show();
}
});
}当onLoginSuccess触发时, 会返回UUser对象, 其中包含了当前玩家的账号ID等信息。 UGUser结构参考如下:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| uid | String | 用户唯一ID |
| name | String | 用户名, 邮箱/设备号/第三方平台用户唯一ID |
| loginName | String | 登录用户名 |
| accountType | String | 1:游客;2:邮箱;3:Google;4:Facebook;5:Apple;6:Twitter;7:Line |
| newAccount | String | 1:新注册用户;0:活跃用户 |
| token | String | 传给游戏服务器,去SDK服务端验证 |
登出
如果游戏中,有【登出】功能, 可以在玩家点击【登出】按钮时,调用下面的logout接口。
java
UGPlatform.getInstance().logout(activity);调用logout接口或者玩家从用户中心悬浮窗中点击了切换账号后,会通过UGSDKListener中onLogout通知给游戏层:
@Override
public void onLogout() {
// 从SDK中登出成功, 游戏收到该回调, 需要返回游戏登录界面,引导玩家重新进入游戏
}账号绑定(可选)
玩家在使用游客登录后,可以在合适时机,主动调用账号绑定接口,引导玩家将游客账号升级到正式账号:
java
UGPlatform.getInstance().bindAccount(activity);玩家绑定账号成功后,会通过UGSDKListener中onUpgradeSuccess通知给游戏层:
java
@Override
public void onUpgradeSuccess(UGUser user) {
// 游客账号升级成功回调
// 可能非UI线程, 如果需要操作UI,请在UI线程中操作
Log.d("UGSDKDemo", "sdk account upgrade success."+user.getUid()+"; accountType:"+user.getAccountType());
}打开用户中心(可选)
正常SDK登录成功后,会自动展示一个悬浮球, 点击悬浮球会弹出用户中心界面。 但如果SDK后台关闭了悬浮球,那SDK登录后将不会展示悬浮球。 开发者可以在游戏中增加【用户中心】按钮,点击调用如下接口,打开用户中心界面:
java
UGPlatform.getInstance().showAccountCenter(activity);账号删除(可选)
默认用户中心中也会展示账号删除入口, 如果不开启用户中心, 游戏中也加账号删除入口,然后调用如下接口:
java
UGPlatform.getInstance().deleteCurrentAccount(activity);账号删除成功后,会通过UGSDKListener中onLogout通知给游戏层,游戏层需要引导玩家登出游戏。
服务端登录验证
游戏层拿到UGUser对象后,不能直接让玩家进入游戏, 需要将UGUser对象中的uid、 token等数据, 传给游戏服务器。
游戏服务器通过调用服务端API集成->登录认证协议,验证token的合法性。
验证通过后, 才能让玩家进入游戏。