标签:
环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:
用户可以基于我们提供的 Demo 实现自己的应用,也可以基于 SDK 开发自己应用。
SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
注意:如果您是从 SDK2.x 升级到 3.0,可以参考环信 SDK 2.x到3.0升级文档
EaseUI 中用到的第三方库:
Demo 中用到的第三方库:
将下载好的 SDK 文件夹(HyphenateSDK)拖入到项目中,并勾选上 Destination。
第 1 步:向Build Phases → Link Binary With Libraries 中添加依赖库。
SDK 依赖库有:
(如果使用的是 xcode7,后缀为 tbd。)
SDK 包含实时语音依赖库有:
(如果使用的是 xcode7,后缀为 tbd。)
第 2 步:SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中设置 NO。
以上步骤进行完后,编译工程。如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步了。
第 1 步:引入相关头文件 #import “EMSDK.h”。
第 2 步:在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法。
1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3 //AppKey:注册的AppKey,详细见下面注释。 4 //apnsCertName:推送证书名(不需要加后缀),详细见下面注释。 5 EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"]; 6 options.apnsCertName = @"istore_dev"; 7 [[EMClient sharedClient] initializeSDKWithOptions:options]; 8 9 return YES; 10 } 11 12 // APP进入后台 13 - (void)applicationDidEnterBackground:(UIApplication *)application 14 { 15 [[EMClient sharedClient] applicationDidEnterBackground:application]; 16 } 17 18 // APP将要从后台返回 19 - (void)applicationWillEnterForeground:(UIApplication *)application 20 { 21 [[EMClient sharedClient] applicationWillEnterForeground:application]; 22 }
调用的 SDK 接口参数解释如下:
环信为 IM 部分提供了 APNS 推送功能,如果您要使用,请跳转到APNS离线推送。
注册模式分两种,开放注册和授权注册。
1 #import "RegistViewController.h" 2 #import "EMSDK.h" // 环信的框架 3 @interface RegistViewController () 4 // 用户名 5 @property (weak, nonatomic) IBOutlet UITextField *userNameTextFiled; 6 7 // 密码 8 @property (weak, nonatomic) IBOutlet UITextField *passwordTextField; 9 10 11 @end 12 13 @implementation RegistViewController 14 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 @interface ViewController () 4 // 用户名 5 @property (weak, nonatomic) IBOutlet UITextField *UserNameFiledText; 6 7 // 密码 8 @property (weak, nonatomic) IBOutlet UITextField *passwordFieldText; 9 10 11 @end 12 13 @implementation ViewController 14 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 }
标签:
原文地址:http://www.cnblogs.com/leikun1113/p/5557402.html