iOS 集成文档
相关限制及注意事项
1、iOS SDK新版支持 iOS8 以上版本。
2、目前发布xcode版本为XCode 12.0,建议使用新版开发
3、iOS目前仅仅支持超链接标签,其他html标签和属性均不识别
4、iOS需要申请麦克风、相机、相册权限,否则部分功能无法使用
智齿客服SDK具有以下特性
- 在线咨询:咨询人工客服(收发图片、发送视频)、发送表情;
- 高度自定义UI;
1 文档介绍
1.1 集成流程示意图
1.2.文件说明
SDK包含(SobotOnline.framework和SobotOnline.bundle)、SobotDemo、和Doc相关说明文档。
文件名 | 说明 | 备注 |
---|---|---|
SobotOnline.framework | 智齿SDK代码库 | |
SobotOnline.bundle | SDK资源库,包含图片文件、多语言文件、颜色 | |
SobotOnlineService.h | 关键功能操作类 | |
SobotOnlineConfig.h | 功能配置类 | |
SobotCache.h | 基础框架设置类 |
2 集成方式
使用客服SDK需要加入的权限
<key>NSCameraUsageDescription</key>
<string>发送图片需要访问相机</string>
<key>NSMicrophoneUsageDescription</key>
<string>发送语音需要访问麦克风</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>发送图片需要访问相册</string>
2.1 手动集成
下载链接:
下载并解压iOS_OnlineSDK,添加必要文件SobotOnline.framework和SobotOnline.bundle到你的工程里。
2.2 CocoPods集成
集成代码,在podfile中加入:
pod 'SobotOnlineSDK', '~> 1.0.1'
如果查询不到库,请清除pod缓存:
// 搜索不到最新版本
pod cache clean --all
rm -rf ~/Library/Caches/CocoaPods
pod repo update
删除代码中的pod 文件夹,
pod cache clean 插件名
再重新 pod install
3.1 初始化和域名设置
【说明:appid, app_key 请联系智齿售后人员获取;如果使用token方式接入,请参考接口文档获取token】
域名说明:
* 默认SaaS平台域名为:https://api.sobot.com
* 如果您是腾讯云服务,请设置为:https://ten.sobot.com
* 如果您是本地化部署,请使用自己的部署的服务域名
方式一:以appid和appkey方式初始化SDK
示例代码:
/// 初始化SDK,设置域名,获取token
/// @param appid 公司appid
/// @param appkey 商户appkey
/// @param host 可以为空,默认阿里云服务;如果需要,请设置自己的域名
+(void)initWithAppid:(NSString *) appid appkey:(NSString *) appkey host:(NSString * __nullable) host result:(void (^)(id object))resultBlock;
// lg:
[SobotOnlineService initWithAppid:@"你的appid" appkey:@"你的appkey" host:@"https://test.sobot.com" result:^(id _Nonnull object) {
}];
方式二:直接以token方式初始化SDK
/// 初始化SDK,设置域名和认证token
/// @param token 认证token
/// @param host 可以为空,默认阿里云服务;如果需要,请设置自己的域名
/// @param resultBlock 返回结果
+(void)initWithToken:(NSString *) token host:(NSString * __nullable) host result:(void (^)(id object))resultBlock;
3.2 资源配置
可选,默认为以下值,可自定义资源库
//指定加载的bundle名称,默认SobotOnline
[SobotCache shareSobotCache].sobotCacheEntity.bundleName = @"SobotOnline";
//指定加载的颜色文件名称,默认SobotColor
[SobotCache shareSobotCache].sobotCacheEntity.colorTableName = @"SobotColor";
3.3 启动页面
3.3.1 普通版:
详情见Demo调用代码;
主要调用代码如下:
【注意:启动页面之前,必须调用初始化接口initWithAppid,否则将无法启动】
接口:
/// 启动客服认证页面
/// @param account 客服账户(邮箱)
/// @param loginStatus 登录状态 2:忙碌,1:在线,0默认
/// @param byController 启动的controller
+(void)startAuthWithAcount:(NSString *) account status:(int) loginStatus vc:(UIViewController *) byController result:(void (^)(id object))resultBlock;
参数:
参数名 | 类型 | 描述 |
---|---|---|
account | NSString | 客服邮箱 |
status | int | -1为不置顶,0忙碌,1在线 |
resultBlock | NSString | 启动结果状态回调 |
示例代码:
#import <SobotOnline/SobotOnline.h>
[SobotOnlineService startAuthWithAcount:@"zhangxy@sobot.com" status:1 vc:self result:^(id _Nonnull object) {
}];
3.4 接口说明:
3.4.1 登录
静默上线客服,登录后如果客服为在线状态,能收到实时消息监听
#import <SobotOnline/SobotOnline.h>
/// 仅登录客服,不执行页面逻辑
/// @param account 客服账户(邮箱)
/// @param loginStatus 登录状态 2:忙碌,1:在线,0使用默认值
/// @param resultBlock 登录结果
[SobotOnlineService doLoginWithAccount:@"zhangxy@sobot.com" status:1 result:^(id _Nonnull object) {
}];
3.4.2 退出登录
离线当前客服
#import <SobotOnline/SobotOnline.h>
/// 手动离线客服
[SobotOnlineService outAdmin];
3.4.3 获取未读消息
获取当前未读消息总数,本地消息,重新登录会清空
#import <SobotOnline/SobotOnline.h>
/// 获取未读消息数
int num = [SobotOnlineService getUnReadNumber];
3.4.4 设置消息监听
代理方式和block方式可任选一个监听
#import <SobotOnline/SobotOnline.h>
// 以block方式
[SobotOnlineService setReceiveMessageBlock:^(id message, int nleft, NSDictionary *object) {
}];
// 设置代理方式
[SobotOnlineService setReceiveMessageDelegate:self];
//设置消息链接点击监听; 返回YES自己处理,内部不会再做处理
[SobotOnlineService setSobotLinkBlock:^BOOL(id object, NSString *linkUrl) {
if([linkUrl isEqual:@"我喜欢"]){
// do something
return YES;
}
return NO;
}];
3.4.5 功能配置
以属性方式配置部分功能、配置颜色配置功能显影等,暂未实现 例如: 是否自动提醒
SobotOnlineConfig *config = [SobotOnlineService getCurOnlincConfig];
config.autoNotifaction = YES;
[SobotOnlineService configSobotOnline:config];