最近项目中有一些关于聊天的需求,由于项目比较紧张,就使用的环信,对于项目来说,环信足够了,节省了自己封装XMPP的时间,同时后台那边也省事了,废话不多说,下面是我在搞环信的一些手段。
1.首先是注册环信https://console.easemob.com/index_register.html
2.导入环信SDK,两种方法第一种使用cocoapod
第一种
通过 Cocoapods 下载地址
不包含实时语音版本SDK(EaseMobClientSDKLite),引用时 #import
pod 'EaseMobSDK', :git => 'https://github.com/easemob/sdk-ios-cocoapods.git'
包含实时语音版本SDK(EaseMobClientSDK),引用时 #import
pod 'EaseMobSDKFull', :git => 'https://github.com/easemob/sdk-ios-cocoapods-integration.git'
第二种
下载SDK手动导入
将下载好的 SDK 文件夹(EaseMobSDK)拖入到项目中,并勾选上 Destination。
第 1 步:向 Build Phases → Link Binary With Libraries 中添加依赖库。
SDK 依赖库有:
MobileCoreServices.framework
CFNetwork.framework
libEaseMobClientSDKLite.a
libsqlite3.dylib
libstdc++.6.0.9.dylib
libz.dylib
libiconv.dylib
libresolv.dylib
libxml2.dylib
(如果使用的是 xcode7,后缀为 tbd)
第 2 步:向 Build Settings → Linking → Other Linker Flags 中添加 -ObjC(注意大小写)
(如果项目中使用 -ObjC 有冲突,可以添加 -force_load 来解决)
格式为: -force_load[空格]EaseMobSDK/lib/libEaseMobClientSDKLite.a(静态库的路径)
1. 先添加一个-force_load。
2. 将静态库拖动到上一步添加的 -force_load 下面。
最终效果:
以上步骤进行完后,编译工程,如果没有报错,恭喜你,集成 SDK 成功,可以进行下一步了。
3.初始化环信
引入相关头文件 #import”EaseMob.h”(不需要实时语音功能)或者 #import”EMSDKFull.h”
在工程的 AppDelegate 中的以下方法中,调用 SDK 对应方法:
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary*)launchOptions{
//registerSDKWithAppKey: 注册的AppKey,详细见下面注释。
//apnsCertName: 推送证书名(不需要加后缀),详细见下面注释。
[[EaseMob sharedInstance]registerSDKWithAppKey:@"douser#istore"apnsCertName:@"istore_dev"];
[[EaseMob sharedInstance]application:application didFinishLaunchingWithOptions:launchOptions];returnYES;
}
// APP进入后台
-(void)applicationDidEnterBackground:(UIApplication*)application{
[[EaseMob sharedInstance]applicationDidEnterBackground:application];
}
// APP将要从后台返回
-(void)applicationWillEnterForeground:(UIApplication*)application{
[[EaseMob sharedInstance]applicationWillEnterForeground:application];
}
// 申请处理时间
-(void)applicationWillTerminate:(UIApplication*)application{
[[EaseMob sharedInstance]applicationWillTerminate:application];
}
这样下来基本上就是基本框架了
3.在登录和注册中环信提供了三种登录和注册的方法一种同步一种异步的block一种代理的在这里我个人推荐block的,阅读性比较强
4.在实际操作中一直找不到接收消息的代理如何添加后来也是翻阅资料找到的
[[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
[[EaseMobsharedInstance].chatManageraddDelegate:selfdelegateQueue:nil];
这两个个代理很重要它实现了几乎所有的关于聊天的方法,有什么需求基本上都能在代理里面找到
在开发中,我也是在摸索前进,希望这篇文章对大家有用处
网友评论