iOS 访客端demo集成(含UI库)

代码下载

您可以通过以下两种方式获取到源代码:

欢迎大家提交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 'Fastboard', :git => 'https://github.com/netless-io/fastboard-iOS'
pod 'TZImagePickerController'
#  通用 三方库包含 
* pod 'MBProgressHUD',
* pod 'Masonry'
* pod 'SDWebImage'

主要模块介绍

HelpDeskUI目录介绍:

  • Call——实时音视频模块(基于声网sdk 如果没有音视频需求 请手动移除此文件夹)
  • 3rdparty——ui依赖的第三方库 部分基于pod集成
  • ViewController——存放所有页面的控制器类
  • Views—— 存放界面的view
  • Helper—— 封装发送各个类型消息的工具类
  • Model—— 消息模型解析模块
  • Util—— 工具类模块

在集成时,必须要先向自己的工程中导入 HelpDeskUI

主要功能介绍

音视频模块(基于声网音视频服务,使用环信 IM 作为信令通道的开源音视频模块)

集成音视频

  • 视频通话界面图片采用字体图标方式 集成时需要把Call文件夹下的字体图标库加入到工程中

主要类介绍

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

详细代码请查看demo中Call文件下对应的类