登出/切换账号
业务场景
登出/切换账号可用状态时,游戏内显示登出/切换账号按钮,点击后退出当前账号
注意事项
- 登出/切换账号不可用时,请隐藏按钮,不可点击提示"不可用"等字眼。
- 游戏回到登录界面,需要由用户手动点击登录按钮发起登录
流程图
接口介绍
/**
* 登出/退出账号
*/
- (void)logout;
调用示例
// 监听登出回调通知
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onLogout:) name:NOTIFICATION_LOGOUT_SUCCESS object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(onSwitchAccountSuccess:) name:NOTIFICATION_SWITCHACCOUNT_SUCCESS object:nil];
//调用登出接口
[SDKManager.getInstance logout];
// 登出回调
- (void)onLogout:(NSNotification *)notif{
NSLog(@"%@: 登出成功", @"Demo");
// 退出登录
// 游戏侧需要做角色退出操作,并返回到游戏的登录界面, 让用户重新点击登录按钮,重新拉起SDK的登录界面
}
- (void)onSwitchAccountSuccess:(NSNotification *)notif{
NSLog(@"%@: 切换成功", @"Demo");
NSDictionary *userData = notif.userInfo;
NSString *openId = [userData objectForKey:KEY_OPENID]; // SDK账号对外唯一标识
long timestamp = [[userData objectForKey:KEY_TIMES_TAMP] longLongValue]; // 登录时间戳
NSString *sign = [userData objectForKey:KEY_SIGN]; // 服务端登录验签的签名信息
NSString *token = [userData objectForKey:KEY_TOKEN]; // 服务端登录验签的Token
NSString *areaId = [userData objectForKey:KEY_AREAID]; // 游戏大区Id
BOOL isAuth = [[userData objectForKey:KEY_ISAUTH] boolValue]; // 是否实名认证
NSString *birthday = [userData objectForKey:KEY_BIRTHDAY]; // 用户的生日
NSInteger gender = [[userData objectForKey:KEY_GENDER] integerValue]; // 用户的性别
UserInfo *userInfo = (UserInfo *)[userData objectForKey:KEY_USER_INFO];// 默认返回nil对象,无需处理该类型
if (userInfo != nil) {
// 使用前,需先进行非空判断,防止调用异常
NSString *channelUid = userInfo.channelUid;
NSString *avatarUrl = userInfo.avatarUrl;
NSString *avatarUrlBig = userInfo.avatarUrlBig;
NSString *nickName = userInfo.nickName;
BOOL isAuthoriza = userInfo.isAuthoriza;
NSInteger playerLevel = userInfo.playerLevel;
NSString *shareId = userInfo.shareId;
NSString *sharePosition = userInfo.sharePosition;
NSString *shareServerId = userInfo.shareServerId;
NSString *shareRoleId = userInfo.shareRoleId;
NSInteger userType = userInfo.userType;
NSInteger visitBackStatus = userInfo.visitBackStatus;
NSString *phoneNum = userInfo.phoneNum;
BOOL bandPhoneFlag = userInfo.bandPhoneFlag;
NSString *location = userInfo.location;
}
// SDK内切换帐号成功
// 游戏侧需要做角色退出操作, 然后使用新的用户登录信息(userData)来重新走一次游戏侧的账号登录流程
}
参数说明
出参
参数名称 | 类型 | 说明 |
---|---|---|
userData | UserData | 用户数据对象 |
错误码
无