本篇集成指南讲述环信客户互动云访客端客服SDK集成,以及访客端SDK与IM SDK同时集成时的需要注意和解决的问题。
首先到环信官网下载最新版本的商城demo 以及IM的demo
商城demo下载链接:http://www.easemob.com/download/cs 点击SDK下载就是demo
IM的demo下载链接:http://www.easemob.com/download/im 点击SDK+Demo源码下载就是demo
2.下载完两个demo之后,看这个链接先把访客端客服SDK和UI集成好
注意事项:(文件从1步骤下载的商城demo中去拿HelpDeskFramework,BaseFramework,HelpDeskUI(目录kefu-ios-demo->kefu-ios-demo->CustomerSystem-ios)这3个文件, HelpDeskFramework中有两个.framework文件,带lite的是没有实时通话功能的,不带lite是有实时通话功能,根据自己的需求二选一,另外一个删除掉。 或者直接从HelpDeskFramework文件中,去拿自己需要的.framework即可) 如果到IM Demo中拿IM SDK的话,只能拿lite版本的。
然后到IM的demo中,去拿EaseUI文件加到自己工程中(如果不与IM用户聊天可以不引入)
3.在pch文件中引入
#ifdef __OBJC__
如果用带实时通话功能的SDK就引入这个头文件
// 客服SDK头文件
#import
如果用的不带实时通话功能的SDK就引入
#import
// 客服SDK依赖的UI文件的头文件
#import "HelpDeskUI.h"
// IM SDK依赖的UI文件的头文件(如果不与IM用户聊天可以不引入)
#import "EaseUI.h"
#endif
然后将EaseUI中的 FixFopen.c删除调用(与客服中的冲突),在EaseUI-EMUIKit-Util目录下
4. 如果集成过程中,EaseUI的类中,有IM SDK头文件的报错,那么就把报错的头文件注释掉即可
如果有三方库冲突的报错,把HelpDeskUI中的删除掉即可,如下图
常见集成报错以及处理方案
一.在导入客服SDK,IM SDK以及客服UI文件之后。
在HDBaseMessageCell.m类中
这3个报错是商城demo中到UD里面取用户自己设置的昵称,因为HelpDeskUI中不包含这个数据,所以注释掉
SCLoginManager *_lgM; 和 _lgM = [SCLoginManager shareLoginManager];
在把 _nameLabel.text = _lgM.nickname; 改成 _nameLabel.text = @"昵称"; 即可
2.报这错的话,在自己pch文件中引入
#define iPhoneXBottomHeight ([UIScreen mainScreen].bounds.size.height==812?34:0)
3. 如果报sd_animatedGIFNamed方法找不到,那么先到自己工程中搜索这方法,如果没有的话,那么就到环信demo中搜索,找到这个方法所在的UIImage分类,把这个分类加到自己工程中就可以了。
4. 如果报rectOfString 方法找不到,可以在工程中搜索rectOfString方法
然后到NSString+Valid.m 类中拿这个方法,加到报错的类中,self调用一下,注意改一下对象方法或者类方法。
5.如果hdwav.mm类中有报错的话, 把#ifdef _cplusplus 和#endif 加到这个类的头尾
6.
这个报错是因为.c文件中引入了OC的头文件,需要在pch文件做处理,把pch文件中所有的OC头文件都引入到
#ifdef __OBJC__ #endif 内部
注意:如果自己工程中的pch文件中,也引入了自己的头文件也需要加到#ifdef __OBJC__ #endif内部,不是只加环信的头文件,自己的也要加进去
7.
如果在编译成功之后,运行的时候,程序崩溃,报截图中的错误信息,那么需要在这里添加一下环信SDK。
8.
发送表情显示字符串,需要添加
[[HDEmotionEscape sharedInstance] setEaseEmotionEscapePattern:@"\\[[^\\[\\]]{1,3}\\]"]; [[HDEmotionEscape sharedInstance] setEaseEmotionEscapeDictionary:[HDConvertToCommonEmoticonsHelper emotionsDictionary]];
最好是把这段代码加到HelpDeskUI中
9.
UI上显示英文,把商城demo中配置的国际化内容添加到HelpDeskUI来解决
二.在此基础之上在添加IM SDK依赖的UI文件 EaseUI常见的报错以及解决方案
这报错是FixFopen.c文件重复了,EaseUI文件和HelpDeskUI文件中都有这个文件,把HelpDeskUI文件的FixFopen.删除即可。目录HelpDeskUI---> HDUIKit---> Util
三. 关于三方库冲突的报错
以上4张截图报错,都是三方库重复的报错,分别的是SDWebImage,PSTCollectionView,MJRefresh,MBProgressHUD 这4个三方库重复,处理方案是把HelpDeskUI---> HDUIKit---> 3rdparty文件里面的删除掉即可,(如果删除掉了三方库还是报错的话,可能是环信UI中用的三方库是老版本的,用户自己用的是新版本的,可能会找不到新版本的方法,需要自己手动替换一下方法)
四. 初始化聊天页面发消息
如果给客服发消息,那么就初始化客服聊天页面HDMessageViewController,传IM服务号
如果给IM用户发消息,那么就初始化IM聊天页面EaseMessageViewController,传IM用户名
如果环信聊天有英文的需要配置国际化文件,分别把IM Demo 和商城demo中,Supporting Files文件中的 Localizable.strings文件中的中英文内容复制到自己工程中配置的国际化文件中即可
如果用户先集成了IM的SDK,那么在此基础之上在加入访客端客服SDK和UI文件集成即可。
如果用户先集成了访客端客服SDK,那么在此基础之上在加入IM SDK和UI文件集成即可。
注意:如果使用了环信的客服SDK,那么在初始化环信SDK以及调用SDK方法登录的时候一定要使用客服SDK的初始化方法,不要使用IM SDK的初始化方法
写了一个客服和IM共存参考demo,可以下载参考
链接: https://pan.baidu.com/s/1JxCMTf9RBpip_qWaLI2Etw
密码: vigs