差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

上一修订版 两侧同时换到之后的修订记录
cs:300visitoraccess:iossdk-customui [2017/11/22 08:26]
刘丽君 创建
cs:300visitoraccess:iossdk-customui [2017/11/22 08:41]
刘丽君
行 1: 行 1:
-======CEC iOS SDK集成文档(自定义UI) ======+====== CEC iOS SDK集成(自定义UI) ======
  
 不使用环信提供的客服UI,可以参考下面的集成文档。 不使用环信提供的客服UI,可以参考下面的集成文档。
  
-====目录==== +===== 下载SDK =====
- +
-  * [[#下载SDK|下载SDK]] +
-  * [[#​环境准备|环境准备]] +
-  * [[#​APNs推送|APNs推送]] +
-  * [[#​登录登出|登录登出]] +
-  * [[#​绑定服务号|绑定服务号]] +
-  * [[#​发送消息|发送消息]] +
-  * [[#​收消息监听|收消息监听]] +
-  * [[#​获取消息详情|获取消息详情]] +
-  * [[#​实时音视频|实时音视频]] +
-  * [[#​音视频API|音视频API]] +
- +
-====下载SDK====+
  
 从[[http://​www.easemob.com/​download|官网]]下载 **iOS客服访客端SDK** 从[[http://​www.easemob.com/​download|官网]]下载 **iOS客服访客端SDK**
行 24: 行 11:
   * BaseFramework:​ 包含 HyphenateLite.framework,是项目依赖库。   * BaseFramework:​ 包含 HyphenateLite.framework,是项目依赖库。
   * HelpDeskFramework:​ HelpDesk.framework 和 HelpDeskLite.framework,HelpDesk.framework 包含实时视频功能,HelpDeskLite.framework不包含实时视频功能。   * HelpDeskFramework:​ HelpDesk.framework 和 HelpDeskLite.framework,HelpDesk.framework 包含实时视频功能,HelpDeskLite.framework不包含实时视频功能。
-  * kefu-ios-demo:​基于访客端SDK开发的演示商城Demo,可直接运行。+  * kefu-ios-demo:​ 基于访客端SDK开发的演示商城Demo,可直接运行。
  
-====环境准备====+===== 环境准备 ​=====
  
- (以下以集成包含音视频的HelpDesk.framework为例,HelpDeskLite.framework 同理)+以下以集成包含音视频的HelpDesk.framework为例,HelpDeskLite.framework 同理
  
- 1、在工程中导入 HelpDesk.framework、HyphenateLite.framework和 HelpDeskUI 文件夹。两种方式:+1、在工程中导入 HelpDesk.framework、HyphenateLite.framework和 HelpDeskUI 文件夹。两种方式:
  
   * 将上述文件夹拖入工程,在弹出对话框中勾选“Copy items if needed”和“Create groups”,并点击“Finish”;   * 将上述文件夹拖入工程,在弹出对话框中勾选“Copy items if needed”和“Create groups”,并点击“Finish”;
   * 或者,选择“File > Add Files to”,从本地选择上述文件夹,点击“Options”,勾选“Copy items if needed”和“Create groups”,并点击“Add”。   * 或者,选择“File > Add Files to”,从本地选择上述文件夹,点击“Options”,勾选“Copy items if needed”和“Create groups”,并点击“Add”。
  
- 2、选中当前的TARGET,向 General -> Embedded Binaries 中添加以上两个依赖库。Linked Frameworks and Libraries 中会自动增加。+2、选中当前的TARGET,向 General -> Embedded Binaries 中添加以上两个依赖库。Linked Frameworks and Libraries 中会自动增加。
  
- {{ :​cs:​300visitoraccess:​frameworkimport.png?​nolink&​600 |}}+ ​{{:​cs:​300visitoraccess:​frameworkimport.png?​nolink&​600 |}}
  
- 3、向Build Settings -> Linking -> Other Linker Flags 中增加-ObjC(注意区分大小写)。+3、向Build Settings -> Linking -> Other Linker Flags 中增加-ObjC(注意区分大小写)。
  
- 4、SDK 暂不支持bitcode,在Build Settings ->Enable Bitcode 改为NO。+4、SDK 暂不支持bitcode,在Build Settings ->Enable Bitcode 改为NO。
  
- 5、在工程info.plist文件中,增加隐私权限:+5、在工程info.plist文件中,增加隐私权限:
  
   * Privacy - Photo Library Usage Description 需要访问您的相册   * Privacy - Photo Library Usage Description 需要访问您的相册
行 49: 行 36:
   * Privacy - Camera Usage Description 需要访问您的摄像机   * Privacy - Camera Usage Description 需要访问您的摄像机
     ​     ​
- 6、在pch文件或全局.h文件中添加如下代码:+6、在pch文件或全局.h文件中添加如下代码:
  
 <​code>​ <​code>​
行 57: 行 44:
 </​code>​ </​code>​
  
-=== 初始化 ===+===== 初始化 ​=====
  
 <​code>​ <​code>​
行 71: 行 58:
 </​code>​ </​code>​
  
-==== APNs 推送 ====+===== APNs 推送 ​=====
  
 <​code>​ <​code>​
行 96: 行 83:
  
 ** APNs注册失败,一般是由于使用了通用证书或者是模拟器调试导致,请检查证书并用真机调试。此处是 iOS 系统报的错,如仍不能确定,请从网上查找相关资料。** ** APNs注册失败,一般是由于使用了通用证书或者是模拟器调试导致,请检查证书并用真机调试。此处是 iOS 系统报的错,如仍不能确定,请从网上查找相关资料。**
-==== 登录登出 ====+ 
 +===== 登录登出 ​=====
  
 由于HChatClient有一个isLoggedInBefore(BOOL),​判断是否已经登录,登录操作前可以先做个判断。 由于HChatClient有一个isLoggedInBefore(BOOL),​判断是否已经登录,登录操作前可以先做个判断。
 +
 <​code>​ <​code>​
 HChatClient *client = [HChatClient sharedClient];​ HChatClient *client = [HChatClient sharedClient];​
行 106: 行 95:
 HError *error = [[HChatClient sharedClient] logout:​YES];​ //​参数为是否解除device token的绑定 HError *error = [[HChatClient sharedClient] logout:​YES];​ //​参数为是否解除device token的绑定
 </​code>​ </​code>​
-====绑定服务号====+ 
 +===== 绑定服务号 ====
 <​code>​ <​code>​
 //​进入聊天界面需要绑定im服务号 //​进入聊天界面需要绑定im服务号
行 113: 行 104:
 [[HChatClient sharedClient].chatManager unbind]; [[HChatClient sharedClient].chatManager unbind];
 </​code>​ </​code>​
-==== 发送消息 ====+ 
 +===== 发送消息 ====
 <​code>​ <​code>​
- HMessage *message = [HMessage createTxtSendMessageWithContent:<#​(文本消息内容)#>​ to:<#(IM 服务号)#>​];​ //​创建文本消息 +HMessage *message = [HMessage createTxtSendMessageWithContent:<#​(文本消息内容)#>​ to:<#(IM 服务号)#>​];​ //​创建文本消息 
- ​HMessage *message = [HMessage createImageSendMessageWithData:<#​(图片数据)#>​ displayName:<#​(图片名字)#>​ to:<#(IM 服务号)#>​];//​创建图片消息 +HMessage *message = [HMessage createImageSendMessageWithData:<#​(图片数据)#>​ displayName:<#​(图片名字)#>​ to:<#(IM 服务号)#>​];//​创建图片消息 
- ​HMessage *message = [HMessage createVoiceSendMessageWithLocalPath:<#​(语音文件路径)#>​ duration:<#​(语音长度,​秒int)#>​ to:<#(IM 服务号)#>​];//​创建语音消息+HMessage *message = [HMessage createVoiceSendMessageWithLocalPath:<#​(语音文件路径)#>​ duration:<#​(语音长度,​秒int)#>​ to:<#(IM 服务号)#>​];//​创建语音消息
 HMessage *message = [HMessage createVideoInviteSendMessageWithContent:<#​(内容)#>​ to:<#(IM 服务号)#>​];//​发起音视频消息 HMessage *message = [HMessage createVideoInviteSendMessageWithContent:<#​(内容)#>​ to:<#(IM 服务号)#>​];//​发起音视频消息
 HMessage *message = [HMessage createLocationSendMessageWithLatitude:<#​(纬度)#>​ longitude:<#​(经度)#>​ address:<#​(地址)#>​ to:<#(IM 服务号)#>​];​ HMessage *message = [HMessage createLocationSendMessageWithLatitude:<#​(纬度)#>​ longitude:<#​(经度)#>​ address:<#​(地址)#>​ to:<#(IM 服务号)#>​];​
行 124: 行 117:
 [[HChatClient sharedClient].chatManager sendMessage:<#​(HMessage*)#>​ progress:​nil completion:​^(HMessage *message, HError *error) {}]; [[HChatClient sharedClient].chatManager sendMessage:<#​(HMessage*)#>​ progress:​nil completion:​^(HMessage *message, HError *error) {}];
 </​code>​ </​code>​
-==== 收消息监听 ====+ 
 +===== 收消息监听 ====
 <​code>​ <​code>​
 //​添加消息听 //​添加消息听
行 136: 行 131:
 //​消息状态改变 //​消息状态改变
 - (void)messageStatusDidChange:​(HMessage *)aMessage error:​(HError *)aError; - (void)messageStatusDidChange:​(HMessage *)aMessage error:​(HError *)aError;
- 
 </​code>​ </​code>​
  
-==== 获取消息详情 ====+===== 获取消息详情 ====
 <​code>​ <​code>​
 HMessage *message; HMessage *message;
行 174: 行 169:
 } }
 </​code>​ </​code>​
-==== 实时音视频 ====+ 
 +===== 实时音视频 ====
 <​code>​ <​code>​
 //​初始化音视频 //​初始化音视频
行 188: 行 185:
 </​code>​ </​code>​
  
-==== 音视频 API ====+===== 音视频 API ====
 <​code>​ <​code>​
 //​接收坐席发来视频邀请 //​接收坐席发来视频邀请