自动登录:即首次登录成功后,不需要再次调用登录方法,在下次app启动时,SDK会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。 配置是否进行自动登录
SDK中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次app启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。
1.修改登录方法,设置自动登录
/**
* 登录
*/
- (IBAction)login:(UIButton *)sender
{
NSString *username = self.usernameField.text;
NSString *password = self.passwordField.text;
if (username.length == 0 || password.length == 0) {
NSLog(@"请输入账号和密码");
return;
}
// 登录(block异步方法)
[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:username password:password completion:^(NSDictionary *loginInfo, EMError *error) {
if (!error && loginInfo) {
// NSLog(@"登陆成功");
// 设置自动登录
[[EaseMob sharedInstance].chatManager setIsAutoLoginEnabled:YES];
// 跳转到主界面
self.view.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateInitialViewController];
}else{
NSLog(@"登录失败");
}
} onQueue:nil];
}
2.在程序启动的时候判断是否设置了自动登录,如果已经设置就直接到主界面。
AppDelegate.m里:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 1.初始化环信SDK,并隐藏环信SDK的日志输入
[[EaseMob sharedInstance] registerSDKWithAppKey:@"491876254#chatdemo" apnsCertName:nil otherConfig:@{kSDKConfigEnableConsoleLogger:@(NO)}];
[[EaseMob sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
// 2.如果设置了自动登录,直接到主界面
if ([[EaseMob sharedInstance].chatManager isAutoLoginEnabled]) {
// 跳转到主界面
self.window.rootViewController = [[UIStoryboard storyboardWithName:@"Main" bundle:nil] instantiateInitialViewController];
}
return YES;
}