iOS SDK 介绍及导入

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
 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离线推送

注册

注册模式分两种,开放注册和授权注册。

  • 只有开放注册时,才可以客户端注册。开放注册是为了测试使用,正式环境中不推荐使用该方式注册环信账号。
  • 授权注册的流程应该是您服务器通过环信提供的 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;
 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 }
时间: 2024-10-13 01:12:57

iOS SDK 介绍及导入的相关文章

IOS SDK详解

来源:http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html?page=1#42803301 博客专栏>移动开发专栏>IOS SDK详解 分享到:新浪微博腾讯微博IOS SDK详解 本专栏从IOS SDK中常用的Framework出发,继而深入的介绍各个Framework.每个Framework博主都会进行Demo 收藏 订阅 最新更新文章 [移动开发] IOS SDK详解之CALayer(二) 原创Blog,转载请注明出处

ios--集成支付宝钱包支付iOS SDK的方法与经验

文/胖花花(简书作者)原文链接:http://www.jianshu.com/p/fe56e122663e著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 “请点此下载集成开发包” Baidu和Googlep排在前面的支付宝开放平台,里面的SDK已经是2年前的版本了,而且还不支持64位架构. 文档 压缩

新浪微博iOS SDK UIImage+WBSDKResize.o

Undefined symbols for architecture armv7: "_kCGImageSourceThumbnailMaxPixelSize", referenced from: +[UIImage(WBSDKResize) wbsdk_resizeImageToMaxSize:sourcePath:] in libWeiboSDK.a(UIImage+WBSDKResize.o) "_kCGImageSourceCreateThumbnailWithTra

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变

iOS 9的新的改变 iOS SDK Release Notes for iOS 9 说了些改变 看了下还算能理解!!!有兴趣可以看看哈!!!不喜勿喷!!后面的对于废除的方法什么有用感觉!!! ios9 iOS SDK更新内容介绍 重点介绍: 这是一个初步的文档的API或技术发展.苹果是提供这一信息来帮助你计划的采用所述技术和编程接口使用品牌产品.此信息可能发生变化,根据这个文档和软件实现应与最后的操作系统软件测试和最终的文档.新版本的文档可以提供未来贝塔的API或技术. 内容: 介绍 iOS

集成支付宝钱包支付iOS SDK的方法与经验

没想到,支付宝的SDK是我目前用过的所有第三方SDK中最难用的一个了. 下载 首先,你要想找到这个SDK,都得费点功夫.现在的SDK改名叫移动支付集成开发包了,下载页面在 这里 的 "请点此下载集成开发包" Baidu和Googlep排在前面的支付宝开放平台,里面的SDK已经是2年前的版本了,而且还不支持64位架构. 文档 压缩包里有两个相关文档 :<支付宝钱包支付接口开发包2.0标准版.pdf><支付宝钱包支付接口开发包2.0标准版接入与使用规则.pdf>iO

iOS框架介绍

iOS框架介绍 Cocoa Touch GameKit  实现对游戏中心的支持,让用户能够在线共享他们的游戏相关的信息 iOS设备之间蓝牙数据传输   从iOS7开始过期   局域网游戏  http://www.cnblogs.com/KidReborn/archive/2011/10/17/2215641.html iAd     用来在应用中提供广告条 广告条与用户UI视图进行合并,与苹果的iAd服务一起工作,自动处理.加载和呈现富媒体广告以及应答在那些广告条上的点击等所有相关的工作.htt

来自锐动天地的直播ios SDK

直播iOS SDK,可以在手机iOS端实时采集视频,同时在拍摄过程中支持多种实时滤镜效果,只要调用视频直播接口,通过3G.4G.WIFI等网络,推流发送给云端流媒体直播系统处理,并通过CDN视频加速分发做现场直播播出,供远程观看,是一款专业级水平的视频直播开发包.同时,在节目直播过程中,直播视频可归档.存储,方便后续回看.视频直播sdk不断优化视频采集和处理能力,让开发者更专注自身业务应用开发和运营. SDK功能介绍--直播推流 SDK功能介绍--播放器 手机直播SDK功能详情 点击立即体验(锐

iOS SDK详解之NSScanner-分析String

原创blog,转载请注明出处 blog.csdn.net/hello_hwc 欢迎关注我的iOS SDK详解专栏,这里有很多基础的文章 http://blog.csdn.net/column/details/huangwenchen-ios-sdk.html 前言:NSScanner是分析String,把String转为substring和数字的很好的工具.它使用一个NSString初始化,使用的时候通常从开头处扫描直到结尾. 本文会先举出两个例子,然后详细的讲解NSScanner的方法.源码是

微信iOS SDK文档总结

至今共19个类,分3大类. (1)请求与响应类:微信终端和第三方程序:第三方程序和微信服务器. BaseReq:所有请求类的基类. GetMessageFromWXReq:微信终端向第三方程序请求提供内容请求类型. LaunchFromWWXReq:     微信终端打开第三方程序请求类型. SendMessageToWXReq:  第三方程序发送消息至微信终端程序的接口. ShowMessageFromWXReq:要求第三方程序显示的消息结构体. BaseResp:所有响应类的基类. GetM