====== ios 访客端demo集成说明(含UI设计) ======
==== 代码下载 ====
您可以通过以下两种方式获取到源代码:
* 下载代码压缩包:客服云sdk 及 Demo 下载 [[http://www.easemob.com/download/cs ]]
* 下载源代码:github源码地址 [[https://github.com/easemob/kefu-ios-demo ]]
欢迎大家提交PR改进和修复HelpDeskUI中的问题。
=== 运行 CustomerSystem-ios 工程 ===
从//客服云sdk 及 Demo 下载// 下载 iOS SDK 压缩包,然后解压。解压后在 kefu-iossdk-vx.x.x 文件夹下有一个kefu-ios-demo文件夹,即为CustomerSystem-ios的工程目录。
终端cd到kefu-ios-demo的podfile目录下,终端执行pod install命令,等待下载完所有的pod依赖库,即可打开CustomerSystem-ios.xcworkspace,运行kefu-ios-demo进行自定义再次开发。
=== 使用到的pod库 ===
* 声网音视频SDK pod 'AgoraRtcEngine_iOS'
三方库包含
* pod 'MBProgressHUD',
* pod 'Masonry'
* pod 'SDWebImage'
==== 主要模块介绍 ====
HelpDeskUI目录介绍:
* Call——实时音视频模块(基于声网sdk)
* 3rdparty——ui依赖的第三方库 部分基于pod集成
* ViewController——存放所有页面的控制器类
* Views—— 存放界面的view
* Helper—— 封装发送各个类型消息的工具类
* Model—— 消息模型解析模块
* Util—— 工具类模块
在集成时,必须要先向自己的工程中导入 HelpDeskUI
==== 主要功能介绍 ====
=== 音视频模块(基于声网音视频服务,使用环信 IM 作为信令通道的开源音视频模块) ===
**主要类介绍**
* HDAgoraCallViewController:视频通话界面控制器ui相关都在这个类里边
* HDAgoraCallManager:单利类 集成声网相关都方法都在这个类里边包括初始化通知回调等
// 发起视频邀请,发起后,客服会收到申请,客服同意后,会自动给访客拨过来。
- (HDMessage *)creteVideoInviteMessageWithImId:(NSString *)aImId
content:(NSString *)aContent;
// 基础设置项
- (void)setCallOptions:(HDAgoraCallOptions *_Nullable)aOptions;
// 获取通话状态 YES 通话中。NO 未通话
- (BOOL)getCallState;
// 获取设置项
- (HDAgoraCallOptions *_Nullable)getCallOptions;
// 接受视频会话
- (void)acceptCallWithNickname:(NSString *)nickname completion:(void (^_Nullable)(id, HDError *))completion;
// 切换摄像头
- (void)switchCamera;
// 暂停语音数据传输
- (void)pauseVoice;
// 恢复语音数据传输
- (void)resumeVoice;
// 暂停视频图像数据传输
- (void)pauseVideo;
// 恢复视频图像数据传输
- (void)resumeVideo;
// 开启/关闭扬声器播放。 yes 关闭 no 开启
- (void)setEnableSpeakerphone:(BOOL)enableSpeaker;
// 离开房间
- (void)leaveChannel;
// 加入房间
- (void)joinChannel;
// 结束视频会话。
- (void)endCall;
// 拒绝视频会话。
- (void)refusedCall;
// 销毁对象
- (void)destroy;
/// 初始化本地视图。
- (void)setupLocalVideoView:(UIView *)localView;
/// 初始化远端视图。
- (void)setupRemoteVideoView:(UIView *)remoteView withRemoteUid:(NSInteger )uid;
**HDAgoraCallManagerDelegate:代理类 处理声网 等相关回调 事件 **
// 成员进入会话
- (void)onMemberJoin:(HDAgoraCallMember *)member;
// 成员离开会话
- (void)onMemberExit:(HDAgoraCallMember *)member;
// 会话结束
- (void)onCallEndReason:(NSString *)desc;