iOS SDK 介绍
环信 SDK 为用户开发 IM 相关的应用提供的一套完善的开发框架。包括以下几个部分:
-
SDK_Core: 为核心的消息同步协议实现,完成与服务器之间的信息交换。
-
SDK: 是基于核心协议实现的完整的 IM 功能,实现了不同类型消息的收发、会话管理、群组、好友、聊天室等功能。
-
EaseUI: 是一组 IM 相关的 UI 控件,旨在帮助开发者快速集成环信 SDK。
用户可以基于我们提供的 Demo 实现自己的应用,也可以基于 SDK 开发自己应用。
SDK 采用模块化设计,每一模块的功能相对独立和完善,用户可以根据自己的需求选择使用下面的模块:
-
EMClient: 是 SDK 的入口,主要完成登录、退出、连接管理等功能。也是获取其他模块的入口。
-
EMChatManager: 管理消息的收发,完成会话管理等功能。
-
EMContactManager: 负责好友的添加删除,黑名单的管理。
-
EMGroupManager: 负责群组的管理,创建、删除群组,管理群组成员等功能。
-
EMChatroomManager: 负责聊天室的管理。
注意:如果您是从 SDK2.x 升级到 3.0,可以参考环信 SDK 2.x到3.0升级文档
第三方库介绍
EaseUI 中用到的第三方库:
-
MWPhotoBrowser: 图片处理库,浏览显示
-
MJRefresh: 用于页面刷新
-
MBProgressHUD: 用于提示加载刷新
-
libopencore-amrnb.a,libopencore-amrwb.a: 用于 amr 与 wav 之间的转换
Demo 中用到的第三方库:
-
Parse.framework、Bolts.framework: Demo 中的用户信息存储在 Parse,这两个库是 Parse 所需要的库,开发者如果没用 Parse 存储,不要复制到自己项目中
-
libMobClickLibrary.a: 友盟相关的库,用于环信 Demo 基本信息的统计,开发者不用或者已有别的版本的库不要复制到自己项目
配置工程
导入 SDK
将下载好的 SDK 文件夹(HyphenateSDK)拖入到项目中,并勾选上 Destination。
设置工程属性
第 1 步:向Build Phases → Link Binary With Libraries 中添加依赖库。
SDK 依赖库有:
-
CoreMedia.framework
-
AudioToolbox.framework
-
AVFoundation.framework
-
MobileCoreServices.framework
-
ImageIO.framework
-
libc++.dylib
-
libz.dylib
-
libstdc++.6.0.9.dylib
-
libsqlite3.dylib
(如果使用的是 xcode7,后缀为 tbd。)
SDK 包含实时语音依赖库有:
-
CoreMedia.framework
-
AudioToolbox.framework
-
AVFoundation.framework
-
MobileCoreServices.framework
-
ImageIO.framework
-
libc++.dylib
-
libz.dylib
-
libstdc++.6.0.9.dylib
-
libsqlite3.dylib
-
libiconv.dylib
(如果使用的是 xcode7,后缀为 tbd。)
第 2 步:SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中设置 NO。
编译工程
以上步骤进行完后,编译工程。如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步了。
初始化 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 9return YES;
10}
1112// APP进入后台13 - (void)applicationDidEnterBackground:(UIApplication *)application
14{
15 [[EMClient sharedClient] applicationDidEnterBackground:application];
16}
1718// APP将要从后台返回19 - (void)applicationWillEnterForeground:(UIApplication *)application
20{
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
@interface
RegistViewController ()
4
//
用户名
5 @property (weak, nonatomic) IBOutlet UITextField *userNameTextFiled;
6 7// 密码 8 @property (weak, nonatomic) IBOutlet UITextField *passwordTextField;
91011@end1213@implementation RegistViewController
1415 - (void)viewDidLoad {
16 [super viewDidLoad];
17// Do any additional setup after loading the view.18}
1920// 点击注册按钮21 - (IBAction)didClickRegistButton:(id)sender {
2223if (self.userNameTextFiled.text.length == 0 || self.passwordTextField.text.length == 0) {
24 NSLog(@"用户名密码不能为空");
25return;
26 }
2728// 环信的注册方法2930 EMError *error = [[EMClient sharedClient] registerWithUsername:self.userNameTextFiled.text password:self.passwordTextField.text];
31 NSLog(@"error = %@", error);
32if (!error) {
33 NSLog(@"注册成功");
34 }
3536 }
登录
登录:调用 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;
91011@end1213@implementation ViewController
1415 - (void)viewDidLoad {
16 [super viewDidLoad];
17// Do any additional setup after loading the view, typically from a nib.18}
192021// 登录按钮22 - (IBAction)loginClickButton:(id)sender {
2324if (self.UserNameFiledText.text.length == 0 || self.passwordFieldText.text.length == 0) {
25 NSLog(@"用户名密码不能为空");
26 }
2728// 环信登录的方法29 EMError *error = [[EMClient sharedClient] loginWithUsername:self.UserNameFiledText.text password:self.passwordFieldText.text];
30 NSLog(@"%@", error);
31if (!error) {
32 NSLog(@"登录成功");
33// 返回会话列表3435 [self dismissViewControllerAnimated:YES completion:nil];
36 }
3738 }
自动登录
自动登录:即首次登录成功后,不需要再次调用登录方法,在下次 APP 启动时,SDK 会自动为您登录。并且如果您自动登录失败,也可以读取到之前的会话信息。
SDK 中自动登录属性默认是关闭的,需要您在登录成功后设置,以便您在下次 APP 启动时不需要再次调用环信登录,并且能在没有网的情况下得到会话列表。
1 EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
2if (!error)
3{
4 [[EMClient sharedClient].options setIsAutoLogin:YES];
5 }
原文:http://www.cnblogs.com/leikun1113/p/5557402.html
【说明】:本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!