以上步骤进行完后,编译工程。如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步了。
初始化 SDK
第 1 步:引入相关头文件 #import “EMSDK.h”。
第 2 步:在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法。
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions2 {3 //AppKey:注册的AppKey,详细见下面注释。4 //apnsCertName:推送证书名(不需要加后缀),详细见下面注释。
5 EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];6 options.apnsCertName = @"istore_dev";7 [[EMClient sharedClient] initializeSDKWithOptions:options];8
9 returnYES;10 }11
12 //APP进入后台
13 - (void)applicationDidEnterBackground:(UIApplication *)application14 {15 [[EMClient sharedClient] applicationDidEnterBackground:application];16 }17
18 //APP将要从后台返回
19 - (void)applicationWillEnterForeground:(UIApplication *)application20 {21 [[EMClient sharedClient] applicationWillEnterForeground:application];22 }
调用的 SDK 接口参数解释如下:
AppKey: 区别 APP 的标识,参考开发者注册及管理后台。
apnsCertName: iOS 中推送证书名称,参考制作与上传推送证书。
环信为 IM 部分提供了 APNS 推送功能,如果您要使用,请跳转到APNS离线推送。
注册
注册模式分两种,开放注册和授权注册。
只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。
授权注册的流程应该是您服务器通过环信提供的 REST API 注册,之后保存到您的服务器或返回给客户端。
1 #import "RegistViewController.h"
2 #import "EMSDK.h" //环信的框架
3 @interfaceRegistViewController ()4 //用户名
5 @property (weak, nonatomic) IBOutlet UITextField *userNameTextFiled;6
7 //密码
8 @property (weak, nonatomic) IBOutlet UITextField *passwordTextField;9
10
11 @end
12
13 @implementationRegistViewController14
15 - (void)viewDidLoad {16 [super viewDidLoad];17 //Do any additional setup after loading the view.
18 }19
20 //点击注册按钮
21 - (IBAction)didClickRegistButton:(id)sender {22
23 if (self.userNameTextFiled.text.length == 0 || self.passwordTextField.text.length == 0) {24 NSLog(@"用户名密码不能为空");25 return;26 }27
28 //环信的注册方法
29
30 EMError *error =[[EMClient sharedClient] registerWithUsername:self.userNameTextFiled.text password:self.passwordTextField.text];31 NSLog(@"error = %@", error);32 if (!error) {33 NSLog(@"注册成功");34 }35
36 }
登录
登录:调用 SDK 的登录接口进行的操作。
1 #import "ViewController.h"
2 #import "EMSDK.h"
3 @interfaceViewController ()4 //用户名
5 @property (weak, nonatomic) IBOutlet UITextField *UserNameFiledText;6
7 //密码
8 @property (weak, nonatomic) IBOutlet UITextField *passwordFieldText;9
10
11 @end
12
13 @implementationViewController14
15 - (void)viewDidLoad {16 [super viewDidLoad];17 //Do any additional setup after loading the view, typically from a nib.
18 }19
20
21 //登录按钮
22 - (IBAction)loginClickButton:(id)sender {23
24 if (self.UserNameFiledText.text.length == 0 || self.passwordFieldText.text.length == 0) {25 NSLog(@"用户名密码不能为空");26 }27
28 //环信登录的方法
29 EMError *error =[[EMClient sharedClient] loginWithUsername:self.UserNameFiledText.text password:self.passwordFieldText.text];30 NSLog(@"%@", error);31 if (!error) {32 NSLog(@"登录成功");33 //返回会话列表
34
35 [self dismissViewControllerAnimated:YES completion:nil];36 }37
38 }
自动登录
自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。
SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。
1 EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];2 if (!error)3 {4 [[EMClient sharedClient].options setIsAutoLogin:YES];5 }