#import <EaseMobSDKFull/EaseMob.h>
#define SETUSERDEFAULT(VALUE, KEY) [[NSUserDefaults standardUserDefaults] setObject:(VALUE) forKey:(KEY)]
#define GETUSERDEFAULT(KEY) [[NSUserDefaults standardUserDefaults] objectForKey:(KEY)]
#import "ViewController.h"
#import <EaseMobSDKFull/EaseMob.h>
#define SETUSERDEFAULT(VALUE, KEY) [[NSUserDefaults standardUserDefaults] setObject:(VALUE) forKey:(KEY)]
#define GETUSERDEFAULT(KEY) [[NSUserDefaults standardUserDefaults] objectForKey:(KEY)]
@interface ViewController ()<EMChatManagerDelegate>
@property (weak, nonatomic) IBOutlet UITextField *zhanghao;
@property (weak, nonatomic) IBOutlet UITextField *mima;
@property (weak, nonatomic) IBOutlet UIButton *zidongdengluButton;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
#pragma mark 自动登陆部分
BOOL isAutoLogin = [[EaseMob sharedInstance].chatManager isAutoLoginEnabled];
NSLog(@"isAutoLogin ====== %d",isAutoLogin);
if (isAutoLogin) {
[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:GETUSERDEFAULT(@"account")
password:GETUSERDEFAULT(@"Password")
completion:^(NSDictionary *loginInfo, EMError *error) {
NSLog(@"自动登陆");
} onQueue:nil];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
#pragma mark 注册
- (IBAction)zhuce:(UIButton *)sender {
[[EaseMob sharedInstance].chatManager asyncRegisterNewAccount:self.zhanghao.text password:self.mima.text withCompletion:^(NSString *username, NSString *password, EMError *error) {
if (!error) {
NSLog(@"注册成功");
}
} onQueue:nil];
}
#pragma mark 登陆
- (IBAction)denglu:(UIButton *)sender {
#pragma mark 登陆
[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:self.zhanghao.text password:self.mima.text completion:^(NSDictionary *loginInfo, EMError *error) {
if (!error && loginInfo) {
NSLog(@"登陆成功");
}
} onQueue:nil];
SETUSERDEFAULT(self.zhanghao.text, @"account");
SETUSERDEFAULT(self.mima.text, @"Password");
#pragma mark 设置是否自动登陆
if ([self.zidongdengluButton.currentTitle isEqualToString:@"是"]) {
[[EaseMob sharedInstance].chatManager asyncLoginWithUsername:self.zhanghao.text password:self.mima.text completion:^(NSDictionary *loginInfo, EMError *error) {
if (!error) {
// 设置自动登录
[[EaseMob sharedInstance].chatManager setIsAutoLoginEnabled:YES];
}
} onQueue:nil];
}
}
#pragma mark 是否自动登陆
- (IBAction)zidongdenglu:(UIButton *)sender {
if ([sender.currentTitle isEqualToString:@"是"]) {
[sender setTitle:@"否" forState:UIControlStateNormal];
} else {
[sender setTitle:@"是" forState:UIControlStateNormal];
}
}
#pragma mark 退出点击事件
- (IBAction)tuichuButton:(UIButton *)sender {
//在被动退出时传NO,在主动退出时传YES.
[[EaseMob sharedInstance].chatManager asyncLogoffWithUnbindDeviceToken:NO completion:^(NSDictionary *info, EMError *error) {
if (!error && info) {
NSLog(@"退出成功");
}
} onQueue:nil];
}
/*!
@method
@brief 当前登录账号在其它设备登录时的通知回调
@discussion
@result
*/
#pragma mark 从其他机器上登陆了本账号
- (void)didLoginFromOtherDevice {
//在被动退出时传NO,在主动退出时传YES.
[[EaseMob sharedInstance].chatManager asyncLogoffWithUnbindDeviceToken:NO completion:^(NSDictionary *info, EMError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"从其他机器上登陆了本账号"
delegate:self
cancelButtonTitle:@"确定"
otherButtonTitles:nil,
nil];
[alertView show];
} onQueue:nil];
}
/*!
@method
@brief 当前登录账号已经被从服务器端删除
@discussion
@result
*/
#pragma mark 当前登录账号已经被从服务器端删除
- (void)didRemovedFromServer {
//在被动退出时传NO,在主动退出时传YES.
[[EaseMob sharedInstance].chatManager asyncLogoffWithUnbindDeviceToken:NO completion:^(NSDictionary *info, EMError *error) {
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"提示"
message:@"当前登录账号已经被从服务器端删除"
delegate:self
cancelButtonTitle:@"确定"
otherButtonTitles:nil,
nil];
[alertView show];
} onQueue:nil];
}
/*!
@method
@brief 将要发起自动重连操作时发送该回调
@discussion
@result
*/
- (void)willAutoReconnect {
NSLog(@"将要重连");
}
/*!
@method
@brief 自动重连操作完成后的回调(成功的话,error为nil,失败的话,查看error的错误信息)
@discussion
@result
*/
- (void)didAutoReconnectFinishedWithError:(NSError *)error {
NSLog(@"重连完成");
}
@end