Appearance
登录相关
WARNING
在游戏登录界面,调用登录接口时, 建议游戏先判断当前是否有初始化完成。 如果未初始化完成,可以再次调用初始化接口。
登录
当玩家进入游戏登录界面、 或玩家手动点击【进入游戏】按钮并且此时玩家是未登录状态时, 游戏层可以调用登录接口。 请在UI主线程中调用该接口。
objc
[[UGSDKPlatform sharedInstance] login];处理登录通知事件
当渠道SDK登录成功或失败时, 聚合SDK会通过初始化时设置的UGSDKDelegate->OnUserLogin,通知给游戏层:
objc
// 登录成功后回调
-(void) onUGLoginSuccess:(UG_UserDataModel*)result{
NSLog(@"sdk login success: %@", result);
}
// 登录失败后回调
-(void) onUGLoginFailed:(NSString*)msg{
NSLog(@"sdk login failed: %@", msg);
}登录成功时,返回的result中是当前用户信息, 其中包含了当前玩家的账号ID等信息。 result结构参考如下:
| 参数名称 | 参数类型 | 参数说明 |
|---|---|---|
| uid | String | 用户唯一ID |
| name | String | 用户名, 普通用户名/手机号/设备号/第三方平台用户唯一ID(微信登录后这里对应的是unionId) |
| loginName | String | 登录用户名 |
| wxOpenID | String | 微信账号的open id, 只有当accountType为4的时候,才可能会有 |
| accountType | String | 1:普通用户登录;2:手机号;3:设备号静默登录;4:微信;5:苹果;6:TapTap;7:抖音 |
| newAccount | String | 1:新注册用户;0:活跃用户 |
| token | String | 传给游戏服务器,去SDK服务端验证 |
登出
如果游戏中,有【登出】功能, 可以在玩家点击【登出】按钮时,调用下面的logout接口。
objc
[[UGSDKPlatform sharedInstance] logout];切换账号(可选)
如果游戏的登录界面上面,有【切换账号】功能, 可以在玩家点击【切换账号】按钮时,调用下面接口。
objc
[[UGSDKPlatform sharedInstance] logout];
[[UGSDKPlatform sharedInstance] login];处理SDK账号切换/登出事件回调
玩家在SDK的用户中心中点击【切换账号】、【登出账号】,或【账号注销成功】等时机,会触发onUGLogoutSuccess回调,通知给游戏层。
游戏层在收到该回调时,需要引导玩家返回到游戏登录界面:
objc
// 从SDK内部(用户中心)登出成功后回调时,fromUserCenter为YES
- (void)onUGLogoutSuccess:(BOOL)fromUserCenter {
NSLog(@"logout from sdk");
if (fromUserCenter) {
// 说明玩家从SDK的悬浮窗中点击了登出账号,游戏这里需要让玩家返回到游戏登录界面,并打开SDK的登录界面,让玩家重新登录
}
}打开用户中心(可选)
正常SDK登录成功后,会自动展示一个悬浮球, 点击悬浮球会弹出用户中心界面。 但如果SDK后台关闭了悬浮球,那SDK登录后将不会展示悬浮球。 开发者可以在游戏中增加【用户中心】按钮,点击调用如下接口,打开用户中心界面:
objc
[[UGSDKPlatform sharedInstance] showUserCenter];服务端登录验证
客户端登录成功后, 会返回user对象给游戏层。 游戏层收到user对象后, 可以将里面userID、 token等数据, 传给游戏服务器。
游戏服务器通过调用服务端->登录认证API,验证token的合法性。
验证通过后, 才能让玩家进入游戏。