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 回调的问题

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,019评论 3 119
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 12,259评论 4 61
  • 那么,人类的行为是否可以被预测?答案是肯定的,但预测能力无不是建立在强大的数据感知和分析上。2030年,采集...
    Sunny莉珺阅读 498评论 0 0
  • 也许平淡真是生活的常态 也许我真不该整日活着都是在窥探别人的人生 如果明早下雪了 那就给自己一个一整天都快乐的理由...
    Saysorry阅读 196评论 0 0
  • 这本书看的我非常非常心虚,一般看一本书,做一件事,我觉得自己都应该有标准和判断。而且,我一直觉得自己是可以用现实性...
    small_angel阅读 672评论 0 2