集成过程
第一步打开 环信客户互动云
-
第二步选择APP接入
- 按照APP接入文档完成 注册客户互动云账号 和 快速快速创建APP关联
第三步可以在桌面创建一个客服的demo
第四步按照CEC iOS SDK集成文档 集成客服demo
我是选择的手动集成SDK
-
工程目录如下
- 在这里我没有使用
HelpDeskUI
选择使用的是EaseUI
,因为项目中也是想实现简单的在线聊天咨询类的功能,没有发送商品信息的功能
按照集成文档往下走完成准备工作,编译运行一下demo,看是否会报错 如.pch文件找不到路径 系统依赖库找不到头文件等等,确保demo编译运行不会出错
-
初始化过程
- 在 AppDelegate.m 文件的系统回调 didFinishLaunchingWithOptions 中,调用初始化接口
HDOptions *option = [[HDOptions alloc] init]; option.appkey = @"Your appkey"; // 必填项,appkey获取地址:kefu.easemob.com,“管理员模式 > 渠道管理 > 手机APP”页面的关联的“AppKey” option.tenantId = @"Your tenantId";// 必填项,tenantId获取地址:kefu.easemob.com,“管理员模式 > 设置 > 企业信息”页面的“租户ID” //推送证书名字 option.apnsCertName = @"your apnsCerName";//(集成离线推送必填) //Kefu SDK 初始化,初始化失败后将不能使用Kefu SDK HDError *initError = [[HDClient sharedClient] initializeSDKWithOptions:option]; if (initError) { // 初始化错误 }
-
注册和登录
-
注册的话可以先在后台注册一个
-
登录
- 在和客服聊天前首先需要先登录
#pragma mark ----- 在线客服的点击 - (void)chatBtnClick{ HDClient *client = [HDClient sharedClient]; if (client.isLoggedInBefore != YES) { HDError *error = [client loginWithUsername:@"username" password:@"password"]; if (!error) { //登录成功 NSLog(@"登录成功"); } else { //登录失败 NSLog(@"登录失败"); return; } } EaseMessageViewController *messageVC = [[EaseMessageViewController alloc] initWithConversationChatter:@"IM服务号" conversationType:EMConversationTypeChat]; messageVC.navigationItem.title = @"客服"; [self.navigationController pushViewController:messageVC animated:YES]; }
-
到这的话基本上就可以实现在线客服的聊天了
-
发送图片的时候可能会注意到,第一次访问相册,允许之后就返回聊天页面了,图片并没有发送成功
- 我这边的解决方案是在EaseChatBarMoreViewDelegate
的代理方法中找到点击相册的方法moreViewPhotoAction:
主动先请求判断用户的相册权限,同意之后,弹出相册选择界面,拒绝之后,弹出提示信息,让用户打开 -
将
EaseUI
代替HelpDeskUI
实现聊天页面可能会出现的问题- 不能发送带商品信息的cell
- 可以试一下自定义cell发送消息,这个我没有尝试,或者直接问一下技术支持(技术客服很给力的)
- emoji表情包不一致,可以看一下这个文档,将
HelpDeskUI
的emoji表情包图片拷到你的项目工程中EaseUI
资源里面- 环信EaseUI实现自定义表情
- 在 AppDelegate.m 文件的系统回调 didFinishLaunchingWithOptions 中添加如下两行代码,可参考商城客服demo
- 怎样指定客服和添加访客信息
- 不能发送带商品信息的cell