即时通讯已经是潮流中的潮流尾了,我决定抓住潮流的尾巴,于是集成了一下环信,早就听说环信的集成会有很多坑,确实不少,但是还好有贴心的技术客服帮助一一解答。
废话不多说,环信的集成看文档来就可以,下面主要说一下中途遇到的坑以及解决方法:
1、pod 'Hyphenate_CN', '~> 3.2.0'
提示ios集成sdk引入EaseUI包,"EaseMob.h"文件找不到
解决:
3.x SDK 的EaseUI里面是不需要使用easeMob.h 文件的(下载最新的demo,从中拉取EaseUI到项目中)
2、demo下载好了测试demo的账号是什么呢?
解决:
dh6666 123456
3、报出could not build module 'Foundation' could not build module 'UIKit'错误
解决:SDK手动加吧
4、SDK手动加入后,引用的头文件 "EMSDKFull.h"、"EaseUI.h"后仍报could not build module 'Foundation' could not build module 'UIKit'错误
解决:在你的pch文件中 所有的头文件 都加到 #ifdef __OBJC__ #import " " 。。。。 #endif 内
5、
解决:把EaseUI中的 EMSDWebimage 删了,报错的地方 换成你自己的SDWebimage的方法
6、
解决:将#import "UIImage+EMGIF.h"文件添加到项目中
7、
解决:SDK 不支持 bitcode,向 Build Settings →build options → Enable Bitcode 中设置 NO。
8、表情为什么没有呢?
解决:在EaseMessageViewController.m类的viewdidload中的最后加上
EaseEmotionManager *manager= [[EaseEmotionManager alloc] initWithType:EMEmotionDefault emotionRow:3 emotionCol:7 emotions:[EaseEmoji allEmoji]];
[self.faceView setEmotionManagers:@[manager]];
9、发送消息发不出去
解决:看登录环信服务器成功没,(登录方法看文档)一般是用户登录你们自己服务器成功之后 在调用登录环信服务器的方法
10、登录失败
解决:看error.codeerror.code=204 EMErrorUserNotFound204是用户不存在
11、发语音的时候蹦了
解决:将这个字段添加到info.plist 文件里面,其他如相机、蓝牙、相册、位置等,都在info.plist文件中需要添加
12、无法使用实时语音
解决:调用实时语音的方法就ok了,demo是先跳转到callviewcontroller方法的,怎么知道用户点的是这个图标呢,不同的button响应方法不同啊这个图标的响应方法是什么?是takeAudioCallAction这个方法
现在只是发通知,没有注册监听者
[[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_CALL object:@{@"chatter":self.conversation.conversationId, @"type":[NSNumber numberWithInt:0]}];
你要监听这个通知来实现发起实时通话的方法
在demo在ChatDemoHelper.m写的
一般在工程的根控制器中去监听,实现全局监听
[[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_CALL object:@{@"chatter":self.conversation.conversationId, @"type":[NSNumber numberWithInt:0]}];无论在哪个页面 有人给你拨打实时通话 你都能监听到
在添加监听的时候,可以直接使用"ChatDemoHelper.h"这个文件