====== 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;