版本:V1.0.6 官网:http://www.youkeyun.com
有客是中国领先的智能客服云平台,为移动应用APP开发者提供智能客服SDK,帮助企业客服人员进行实时在线客服沟通、分析用户访问行为轨迹、实时开展触点式个性化营销,将流量转化为销量。
主要实现功能:
更新记录:
2.1 安装方式一:通过 cocoapods 安装:
pod 'YoukeSDK'
2.2 安装方式二:下载 iOS SDK,解压缩后得到 YoukeSDK 文件夹,把 YoukeSDK 文件夹拖入Xcode项目工程中。
2.3 在Xcode的Build Settings>Other Linker Flags>添加-ObjC
。
2.4 Xcode切换到Build Phases选项卡,选择Link Binary With Libraries,点击+号,导入以下链接库:
libresolv.dylib (xcode7为libresolv.tbd)
libsqlite3.dylib (xcode7为lbsqlite3.tbd)
libxml2.dylib (xcode7为libxml2.tbd)
2.5 在appdelegate里导入YoukeSDK.h
#import "YoukeSDK.h"
获取 Appkey,进入YoukeSDK 后台,注册账号并登录,登录后在左边菜单中选择 开发者>AppKey> 复制企业APPKEY
//注册有客
[YoukeSDK registerYouKeWithAppKey:@"企业APPKEY"];
在需要实现客服聊天功能的地方(如按钮点击事件)中加入以下代码,即可跳转到客服聊天界面,客服列表中的客服人员,须在YoukeSDK 后台添加。
//跳转到客服聊天界面
[YoukeSDK contactCustomServiceWithViewController:self];
当调用
[YoukeSDK contactCustomServiceWithViewController:self]
方法时正巧没有客服在线,会自动跳转到工单提交界面,用户提交的工单会自动分配给各个客服处理:
5.1 在商品详情页加入记录商品信息的代码,此处商品信息为必传,用于将用户访问的商品信息传到客服后台,方便客服了解用户当前正在浏览的商品,并对用户访问的商品信息进行统计和分析功能;用户信息可传可不传。
/**
* 提交商品及用户信息
*
* @param goodsId 商品id
* @param goodsTitle 商品标题
* @param goodsPrice 商品价格
* @param goodsImg 商品图片
* @param userName 用户昵称(app账号体系内的用户昵称)
* @param userPhoto 用户头像(app账号体系内的用户头像)
* @param callNumber 电话号码(app账号体系内的电话号码)
* @param email Email(app账号体系内的Email)
* @param qq QQ号(app账号体系内的QQ号)
* @param text 备注信息
*/
[YoukeSDK visitGoodsWithGoodsId:goodsId
GoodsTitle:goodsName
GoodsPrice:goodsPrice
GoodsImg:goodsImage
UserName:nil
UserPhoto:nil
CallNumber:nil
Email:nil
QQ:nil
Text:nil];
5.2 在商品详情页的viewWillDisappear中加入以下代码,此步骤为了记录用户离开商品页面的时间、记录访问商品时长、进行数据统计和分析。
- (void)viewWillDisappear:(BOOL)animated{
[YoukeSDK leaveGoods];
}
在后台触碰营销菜单进行相关设置,比如设置:在商品详情页停留1分钟或查看该商品10次以上,触发该计划。当用户浏览商品时间或次数达到该要求时,就会显示在创意管理中添加好的“优惠券”信息:
请在YoukeSDK 后台添加问题分类和问题以及答案。在需要打开FAQ界面的地方(如按钮点击事件)添加以下代码,即可实现在线问答功能。
//跳转到FAQ界面
[YoukeSDK openHelpViewControllerWithViewController:self];
用于实现如用户和商家聊天、商家和上级代理商聊天等场景。 8.1、将用户与openfire绑定
/**
* @param userId 用户id
* @param userPhoto 用户头像
* @param userName 用户昵称
* @param tell 用户手机号
* @param email 用户email
* @param qq 用户qq号
* @param otherText 其他信息
*/
[YoukeSDK bindOpenFireWithUserId:@"10003"
UserPhoto:@"http://ww1.sinaimg.cn/bmiddle/97647685jw1euqexfregfj20w80l6q5t.jpg"
UserName:@"jxd002"
Tell:@"18515153245"
Email:@"[email protected]"
QQ:@"8765645"
OtherText:@""];
如果要让商家看到我正在浏览的商品,在商品页面加入下面两个方法即可
//获取到商品信息时
[YoukeSDK visitGoodsWithGoodsId:goodsId
GoodsTitle:goodsName
GoodsPrice:goodsPrice
GoodsImg:goodsImage
UserName:nil
UserPhoto:nil
CallNumber:nil
Email:nil
QQ:nil
Text:nil];
//离开页面时
[YoukeSDK leaveGoods];
如果要让商家看到我正在浏览的订单,在打开商家聊天窗口之前调用以下方法即可
[YoukeSDK visitOrderWithOrderId:@"9888444368"
OrderTime:@"08-21 12:20"
GoodsTitle:@"2014新款 漂流木帆布包男"
GoodsImage:@"http://img10.360buyimg.com/N6/s60x60_g13/M04/00/08/rBEhVFHeVO8IAAAAAAOkd-fxdusAAA8awB92ecAA6SP334.jpg"
GoodsPrice:@"99"];
8.2、用户打开商家的聊天窗口
/**
* @param myUserId 登录用户的用户id
* @param toUserId 聊天对象的用户id
* @param ctrl 从哪个viewcontroller进入
* @param showTips 是否显示提示框
* @param success 成功回调,成功的block会返回聊天列表的数组,数组元素为YoukeMessageListObject类型
* @param failure 失败回调,返回失败信息
*/
[YoukeSDK openPointToPointTalkViewControllerWithMyUserid:@"10001" ToUserId:@"10002" ViewController:self ShowTips:NO Success:^(NSArray *listArray) {
//
} Failure:^(NSError *error) {
NSLog(@"error:%@",[error localizedDescription]);
}];
8.3、商家打开聊天列表
/**
* @param myUserId 登录用户id
* @param ctrl 从哪个viewcontroller弹出
* @param showTips 是否显示提示框
* @param success 成功block,成功的block会返回聊天列表的数组,数组元素为YoukeMessageListObject类型
* @param failure 失败回调,返回失败信息
*/
[YoukeSDK openPointToPointTalkListWithMyUserId:@"10001" ViewController:self ShowTips:NO Success:^(NSArray *listArray) {
//
} Failure:^(NSError *error) {
NSLog(@"error:%@",[error localizedDescription]);
}];
8.4、获取最新聊天消息未读数
//方式一:直接获取最新未读数
NSInteger count = [YoukeSDK getNewMessageCount];
NSLog(@"getNewMessageCount:%@",@(count));
/**
* 方式二:Block方式实时监听新消息数提醒
* @param newMessageCount 新消息数量
* @param messageContent 新消息内容
* @param messageFrom 新消息发送者名
*/
[YoukeSDK sharedInstance].newMessageBlocker = ^(NSInteger newMessageCount, NSString *messageContent, NSString *messageFrom)
{
NSLog(@"getNewMessageCount:%@",@(newMessageCount));
NSLog(@"messageContent:%@",@(messageContent));
NSLog(@"messageFrom:%@",@(messageFrom));
};
8.5、获取最近聊天列表的数据(商家使用),用于需要自定义聊天列表的需求
/**
* 获取点对点聊天列表数据,用于开发者需要自定义聊天列表界面的需求
*
* @param userid 用户自己的用户id
* @param showTips 是否显示提示框
* @param success 成功回调,成功的block会返回聊天列表的数组,数组元素为YoukeMessageListObject类型
* @param failure 失败回调,返回失败信息
*
*/
[YoukeSDK getPointToPointTalkListDataWithMyUserid:@"10001" ShowTips:NO Success:^(NSArray *listArray) {
listData = listArray;
[table reloadData];
} Failure:^(NSError *error) {
NSLog(@"error:%@",[error localizedDescription]);
}];
8.6、聊天详情页点击商品或订单的事件
//聊天详情页中的商品被点击
[YoukeSDK sharedInstance].goodsClickBlocker = ^(NSString *goodsId, UIViewController *viewController)
{
NSLog(@"goodsId:%@",goodsId);
};
//聊天详情页中的订单被点击
[YoukeSDK sharedInstance].orderClickBlocker = ^(NSString *orderId, UIViewController *viewController)
{
NSLog(@"orderId:%@",orderId);
};
YoukeSDK 的消息推送支持客服对访客的消息推送、点对点聊天的消息推送,集成方法如下:
9.1、在Appdelegate中加入以下代码:
- (void)application:(UIApplication *)application
didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
[YoukeSDK registerDeviceToken:deviceToken];
}
9.2、登录developer.apple.com制作推送证书,下载证书后双击导入系统密钥链;
9.3、打开系统密钥链,找到你刚才导入的推送证书;
如果是开发环境,证书名类似“Apple Development IOS Push Services:com.xxx.xxx”;
如果是发布证书,证书名类似“Apple Production IOS Push Services:com.xxx.xxx”;
9.4、在找到的证书上点击右键,选择“导出”,导出p12证书时选择存放的位置,以及填写证书密码,密码可填可不填;
9.5、打开终端,用“cd”命令进入你的证书所在的目录,执行以下命令,将证书转换成pem格式,注意修改证书名称是否与你的对应;
openssl pkcs12 -in cert.p12 -out MyApnsCert.pem -nodes
登录http://t.youkesdk.com ,进入以下菜单:
选择与证书对应的环境上传证书,如果有密码填入密码,点击保存,再点击生效,如果显示“生效中”即成功;
如果收不到推送,最常见的问题是在Archive时的Build Settings > Code Signing中的配置与提交的推送证书不匹配;另外要注意,YoukeSDK只在接收方离线时才会发送推送,在线时不会发送推送,测试方法:直接上划关闭APP后测试推送。
更换皮肤功能主要用于修改导航栏颜色、导航文字的颜色,修改聊天气泡颜色、聊天文字颜色。修改方法是替换skin.plist中对应的value:
MessageBubbleBackgroundColorFromOther //聊天气泡背景色(他人)
MessageBubbleBackgroundColorFromMe //聊天气泡背景色(我的)
MessageBubbleTextColorFromOther //聊天文字颜色(他人)
MessageBubbleTextColorFromMe //聊天文字颜色(我的)
NavigationTitleColor //导航栏文字颜色
NavigationBackgroundColor //导航栏背景色