Swift接入环信客服踩坑

写在前面:公司需要在短时间内实现客服的功能,在几番选择下还是定了环信的客服。讲真,环信的客服基本功能还是不错的,集成起来也不是很复杂。但是,但是,但是,貌似环信客服这个功能不太受重视,集成起来好多坑。特别是他们竟然在 Swift 普及了3年多后还没有 Swift的版本,在集成的过程中遇到了一些坑,特写此Blog帮助大家免进坑
  文章概述:

情景再现
集成
  1 文档几百年都不更新了?
  2 导入的库是否带视频
  3 关于 HelpDeskUI
  4 Swift 中如何正确导入 HelpDesk.framework 、 Hyphenate.framework 以及 HelpDeskUI

情景再现
  • 需求背景:公司需要快速集成客服功能,方便运营服务客户
  • 开发环境:Xcode、Swift 4.0、环信 CEC客服SDK
集成

  按照环信 CEC 客服 SDK 走一遍,坑主要有以下几点:

1 文档几百年都不更新了?

  文档中说“下载的客服SDK目录包括helpdeskdemo-ios、HelpDeskFramework、BaseFramework 三个文件夹”,其实包含的文件早就更新为:HelpDesk、Hyphenate 和 kefu-ios-demo。

文档描述 SDK 目录

实际 SDK 目录

  所以下载到 SDK 的时候不要慌张,哪找最新的走就好了。其中,Hyphenate.framework 是客服 SDK 的依赖库,HelpDesk.framework包含实时音视频、HelpDeskLite.framework不包含实时音视频。
在此说明:文档就要严谨,毕竟开发者都是以文档为准,如果有用心规范文档,就算是几分钟的犹豫对我们来说都是很有帮助的。而且,这个只是举例,文档中很多类似这种不用心的错误

2 导入的库是否带视频

  带视频的库:HelpDesk.framework 和 Hyphenate.framework 是配对使用
  不带视频的库:HelpDeskLite.framework 和 HyphenateLite.framework。
  这个带不带视频的库分清楚了,但是文档是这样描述的“在工程中导入 HelpDesk.framework、HyphenateLite.framework文件夹”...简直了。


选择对应的库

  刚开始我真的是不知道 HelpDesk.framework 必须配 HelpDeskLite.framework的,就按照文档走,结果导入几次,各种尝试,都提示文件导入问题。正确是做法是:如果你想要带视频功能的客服系统,那就集成 HelpDesk.framework 和 Hyphenate.framework ;如果你想集成不带视频的客服系统,那么集成 HelpDeskLite.framework 和 HyphenateLite.framework。

3 关于 HelpDeskUI

  HelpDeskUI 是环信给的默认客服聊天的 UI,如果项目中紧急集成客服系统,那这个 UI 可以直接丢进去,调用 HDMessageViewController 就出现客服聊天的界面了。
  上面导入库的时候根本没有提到这个 HelpDeskUI 这个文件,可是下面 PCH 中明明需要导入这个 UI 的文件。orz...


HelpDeskUI 1

  找了半天在 Demo 的一个文件中发现了这个 HelpDeskUI,导入到项目中。


HelpDeskUI 2

  最终需要的SDK文件是这样子的:


SDK 正确打开方式
4 Swift 中如何正确导入 HelpDesk.framework 、 Hyphenate.framework 以及 HelpDeskUI

  4.1 首先将 HelpDesk.framework 、 Hyphenate.framework 以及 HelpDeskUI 导入到项目中(如上图“SDK 正确打开方式”)
  4.2 TARGET → General → Embedded Binaries 中添加以上两个依赖库


4.2导入 SDK & HelpDeskUI

  4.3 向Build Settings → Linking → Other Linker Flags 中增加-ObjC(注意区分大小写


4.3设置 Other Linker Flags

  4.4 设置 Build Settings →Enable Bitcode 改为NO
4.4设置 Enable Bitcode

  4.5 在工程 info.plist 文件中,增加隐私权限:

Privacy - Photo Library Usage Description 需要访问您的相册
Privacy - Microphone Usage Description 需要访问您的麦克风
Privacy - Camera Usage Description 需要访问您的摄像机

4.5设置 info.plist

  4.6 设置 PCH (这里Hin重要!!!)
  iOS 添加pch文件
4.6 设置 PCH

  4.7 设置 Swift 和 Objective-C 的桥接文件
4.7 设置 Swift 和 Objective-C 的桥接文件

  编译一下,就 Success 了。
Success

  下篇文章会整理下接入客服逻辑的Blog,欢迎订阅

参考文档:
环信 CEC 客服 SDK
消息过来 messagesDidReceive 回调的问题

你可能感兴趣的:(Swift接入环信客服踩坑)