根据需求研究了下环信的客服SDK, 这两天一直磕磕碰碰的在集成,中间遇到了几个坑,不过在咨询了下技术客服顺利的解决了(我的直接告诉我 技术客服是女的)。不过网上关于环信客服的资料很少,也许是我比较衰,遇到了一些坑吧,所以想把自己集成的流程写下来,希望可以帮助其他人。
496b4d62c88b77e97563255b4a3f6fff.jpg
首先官方文档必须要好好的看一遍,毕竟那个还是正版的,是最有权威的。
环信客服sdk集成官方文档
环信客服sdk iOS API
开始集成
步骤1 首先要下载环信提供的客服SDK 进去选择
屏幕快照 2017-09-05 上午11.05.55.png这里遇到的坑就是
屏幕快照 2017-09-05 上午11.08.28.png
我下载商城demo 满怀欣喜的运行 结果给我报错误
屏幕快照 2017-09-04 上午10.48.20.png
我问了技术客服,技术客服说 因为项目太大所以上传github时候 给过滤了些文件 导致项目缺少文件,需要重新集成下。不过客服SDK中有相同的商城demo可以运行,如果大家想省事就可以去运行SDK中的商城demo。
步骤2 SDK下载完成后,文件结构为
屏幕快照 2017-09-05 上午11.23.13.png官方介绍为
- HelpDeskFramework 为客服SDK,HelpDesk.framework包含实时音视频
- HelpDeskLite.framework不包含实时音视频
- HelpDeskUI 为环信提供的单聊UI,可在集成的时候视情况使用
- BaseFramework 为客服SDK依赖库,在导入HelpDeskFramework之前务必导入
2.1 把BaseFramework HelpDeskFramework HelpDeskUI这几个库复制到自己的项目中。
屏幕快照 2017-09-05 上午11.28.15.png这里面就出现了坑2 稍后和大家说
2.2 选中当前的TARGET,向 General → Embedded Binaries 中添加以上依赖库。Linked Frameworks and Libraries 中会自动增加
屏幕快照 2017-09-05 上午11.32.09.png2.3 向Build Settings → Linking → Other Linker Flags 中增加-ObjC(注意区分大小写)
屏幕快照 2017-09-05 上午11.38.57.png2.4 SDK 暂时不支持bitcode,在Build Settings →Enable Bitcode 改为NO。
屏幕快照 2017-09-05 上午11.42.50.png2.5 在工程info.plist文件中,增加隐私权限
Privacy - Photo Library Usage Description 需要访问您的相册
Privacy - Microphone Usage Description 需要访问您的麦克风
Privacy - Camera Usage Description 需要访问您的摄像机
2.5 在工程的pch文件中(没有就新建一个),添加
#ifdef __OBJC__
#import <HelpDesk/HelpDesk.h>
#import "HelpDeskUI.h"
#endif
如果不需要实时音视频就把上面的代码替换成
#ifdef __OBJC__
#import <HelpDeskLite/HelpDeskLite.h>
#import "HelpDeskUI.h"
#endif
以上集成需要的步骤就算完成了,当我特别乐呵的运行的时候,项目报错了
屏幕快照 2017-09-04 上午11.33.18.png说我SCLoginManager这个文件没有找到,我就在项目中查找,没有。我就问了技术客服,技术客服跟我说这个文件是商城demo里面的,需要引进来。 我勒个去,我集成的是SDK 为啥还有引进另一个商城demo的文件,不过为了项目的运行我忍了,引进过来。这时候我天真的以为万事具备了。再次运行的时候
2204830-f0c118fc013fa68d.png
原来是由于环信客服SDK集成了一些常用的第三方的库,如果项目本身也存在这些第三方的库,就 会引起冲突,删除掉,然后把报错的地方修改成正常的调用即可。
u=3307292189,2868808571&fm=200&gp=0.jpg
3 关联App
3.1 先在 环信管理后台 创建应用
屏幕快照 2017-09-05 下午1.42.40.png3.2 点击应用显示应用的信息( AppKey、Client ID、Client Secret )
屏幕快照 2017-09-05 下午1.44.20.png3.2 在 环信管理后台 注册IM用户
屏幕快照 2017-09-05 下午1.49.40.png 屏幕快照 2017-09-05 下午1.51.25.png点击注册然后输入用户名 密码就可以,当然也可以用代码 去注册。 在没有账号的时候,环信都会让注册,注册的信息都会在这里显示,图中里面的很长的字符串就是我用代码来注册的。
3.2 移至 环信工作台 创建APP关联 登陆进去后
屏幕快照 2017-09-05 下午1.59.43.png当右上角红色是切换管理员模式和客服模式的按钮,管理员可以创建app关联 ,管理客服,看各种数据各种高大上的权限。 客服模式就是和客户聊天 “客官,不可以呀!”
然后在 渠道管理 - 手机App - 点击关联IM账户 (如果没有的话可以直接点击快速创建)
屏幕快照 2017-09-05 下午2.04.03.png 屏幕快照 2017-09-05 下午2.04.10.png- 名称 随便
- AppKey Client secret Client ID 也是步骤3.2中的要记住的
3.3 在 环信工作台中管理员模式中进入设置 - 企业信息 记住 租户ID即可
屏幕快照 2017-09-05 下午2.12.53.png4 代码初始化
这里我就写一点简单的初始化代码,和遇到的一点问题 其他的代码看看SDK中的demo 大家应该就懂得了。
HOptions *option = [[HOptions alloc] init];
option.appkey = @"***";
option.tenantId = @"***"; // 上面让记住的租户ID
option.apnsCertName = @"推送证书名称"; //推送证书的名称
//Kefu SDK 初始化,初始化失败后将不能使用 SDK
HError *initError = [[HChatClient sharedClient] initializeSDKWithOptions:option];
if (initError) { // 初始化错误
}
[[HChatClient sharedClient] addDelegate:self delegateQueue:nil];
HChatClientDelegate
- (void)connectionStateDidChange:(HConnectionState)aConnectionState { //网络改变
switch (aConnectionState) {
case HConnectionConnected: {
break;
}
case HConnectionDisconnected: {
break;
}
default:
break;
}
}
- (void)userAccountDidRemoveFromServer {//从服务器中删除账户
}
- (void)userAccountDidLoginFromOtherDevice {//从别的客户端登陆账户
[[HChatClient sharedClient] logout:YES];
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"prompta", @"Prompt") message:NSLocalizedString(@"loginAtOtherDevice", @"your login account has been in other places") delegate:self cancelButtonTitle:NSLocalizedString(@"ok", @"OK") otherButtonTitles:nil, nil];
alertView.tag = 100;
[alertView show];
}
写代码遇到的问题 就是我发送表情 一直显示的的是转移符 而不是表情图片,解决方法:根据官方demo调试代码 发现需要在启动的时候加入
[[HDEmotionEscape sharedInstance] setEaseEmotionEscapePattern:@"\\[[^\\[\\]]{1,3}\\]"];
[[HDEmotionEscape sharedInstance] setEaseEmotionEscapeDictionary:[HDConvertToCommonEmoticonsHelper emotionsDictionary]];
另一个就是 发送定位的时候一直定位失败 解决方法就是在info加入定位的权限
Privacy - Location When In Use Usage Description 需要访问您的地理位置
网友评论