网易七鱼 SDK 是客服系统访客端的解决方案,既包含了客服聊天逻辑管理,也提供了聊天界面,开发者可方便的将客服功能集成到自己的 APP 中。
本插件支持 iOS 7 以上,Android 2.3 以上版本,同时支持手机、Pad。在iOS 9.2 以上版本中支持 IPv6,能正常通过苹果审核。
详情请前往官网:http://www.qiyukf.com
插件会在应用启动时初始化七鱼服务,因此需要在 config.xml 的 widget 标签下添加以下内容,否则七鱼服务将无法正常启动!
<feature name="qiyuSdk">
<param name="appKey" value="七鱼管理后台的appKey" />
<param name="appName" value="七鱼管理后台的App名称" />
</feature>
初始化Sdk
initQiyuSdk()
var qiyuSdk = api.require('qiyuSdk');
qiyuSdk.initQiyuSdk();
启动客服聊天窗口
openServiceWindow(params)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
source | JSON对象 | 无 | 会话窗口来源 |
sourceTitle | 字符串类型 | 无 | 会话窗口来源标题 |
sourceUrl | 字符串类型 | 无 | 会话窗口来源URL |
sourceCustomInfo | 字符串类型 | 无 | 会话窗口来源自定义消息 |
commodityInfo | JSON对象 | 无 | 商品详情信息 |
commodityInfoTitle | 字符串类型 | 无 | 商品详情信息展示商品标题,字符数要求小于100 |
commodityInfoDesc | 字符串类型 | 无 | 商品详情信息展示商品描述,字符数要求小于300 |
pictureUrl | 字符串类型 | 无 | 商品详情信息展示商品图片URL,字符数要求小于1000 |
commodityInfoUrl | 字符串类型 | 无 | 商品详情信息展示跳转URL,字符数要求小于1000 |
note | 字符串类型 | 无 | 商品详情信息展示备注信息,可以显示价格、订单号等,字符数要求小于100 |
show | 布尔类型 | false | 商品详情信息展示发送时是否要在用户端显示,默认不显示 |
sessionTitle | 字符串类型 | 无 | 客服会话窗口标题 |
staffId | long类型 | 无 | 指定客服id,如果同时指定 staffId 和 groupId,以 staffId 为准,忽略 groupId |
groupId | long类型 | 无 | 指定客服分组id,如果同时指定 staffId 和 groupId,以 staffId 为准,忽略 groupId |
var qiyuSdk = api.require('qiyuSdk');
var params = {
source:{
sourceTitle:'网易七鱼APICloud',
sourceUrl:'http://www.qiyukf.com',
sourceCustomInfo:'我是来自自定义的信息'
},
commodityInfo:{
commodityInfoTitle:'APICloud商品',
commodityInfoDesc:'这是来自网易七鱼APICloud的商品描述',
pictureUrl:'http://qiyukf.com/res/img/companyLogo/blmn.png',
commodityInfoUrl:'http://www.qiyukf.com',
note:'¥1000',
show:true
},
sessionTitle:'网易七鱼',
groupId:0,
staffId:0
}
qiyuSdk.openServiceWindow(params);
自定义客服聊天窗口UI
setCustomUIConfig(params)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
sessionTipTextColor | 字符串类型,如'#CC00FF' | 无 | 会话窗口上方提示条中的文本字体颜色 |
sessionTipTextFontSize | int类型,如15 | 无 | 会话窗口上方提示条中的文本字体大小 |
customMessageTextColor | 字符串类型,如'#CC00FF' | 无 | 访客文本消息字体颜色 |
serviceMessageTextColor | 字符串类型,如'#CC00FF' | 无 | 客服文本消息字体颜色 |
messageTextFontSize | int类型,如15 | 无 | 消息文本消息字体大小 |
tipMessageTextColor | 字符串类型,如'#CC00FF' | 无 | 提示文本消息字体颜色 |
tipMessageTextFontSize | int类型,如15 | 无 | 提示文本消息字体大小 |
inputTextColor | 字符串类型,如'#CC00FF' | 无 | 输入框文本字体颜色 |
inputTextFontSize | int类型,如15 | 无 | 输入框文本字体大小 |
sessionBackgroundImage | 字符串类型,传入图片的绝对路径,如'widget://image/session_bg.png' | 无 | 客服聊天窗口背景图片 |
sessionTipBackgroundColor | 字符串类型,如'#CC00FF' | 无 | 会话窗口上方提示条的背景颜色 |
customerHeadImage | 字符串类型,传入图片的绝对路径 | 无 | 访客头像 |
serviceHeadImage | 字符串类型,传入图片的绝对路径 | 无 | 客服头像 |
sessionMessageSpacing | float类型,如3.5 | 无 | 消息竖直方向间距 |
showHeadImage | 布尔类型 | true | 是否显示头像 |
naviBarColor | 字符串类型,如'#CC00FF' | 无 | 导航栏背景颜色 |
naviBarStyleDark | 布尔类型 | false | 导航栏风格,默认为浅色系,设置为true,可修改为深色系,影响导航栏上的文字、按钮 |
showAudioEntry | 布尔类型 | true | 是否显示发送语音入口,设置为false,可以修改为隐藏 |
showEmoticonEntry | 布尔类型 | true | 是否显示发送表情入口,设置为false,可以修改为隐藏 |
autoShowKeyboard | 布尔类型 | true | 进入聊天界面,是文本输入模式的话,会弹出键盘,设置为false,可以修改为不弹出 |
var qiyuSdk = api.require('qiyuSdk');
var params = {
sessionTipTextColor:'#CC00FF',
sessionTipTextFontSize:20,
customMessageTextColor:'#CC00FF',
serviceMessageTextColor:'#CC00FF',
messageTextFontSize:20,
tipMessageTextColor:'#CC00FF',
tipMessageTextFontSize:20,
inputTextColor:'#CC00FF',
inputTextFontSize:20,
sessionBackgroundImage:'widget://image/session_bg.png',
sessionTipBackgroundColor:'#000000',
customerHeadImage:'widget://image/customer_head.png',
serviceHeadImage:'widget://image/service_head.png',
sessionMessageSpacing:2,
showHeadImage:true,
naviBarColor:'#CC00FF',
naviBarStyleDark:true,
showAudioEntry:false,
showEmoticonEntry:false,
autoShowKeyboard:false
}
qiyuSdk.setCustomUIConfig(params);
设置聊天窗口中的链接点击事件回调
setUrlClickCallback(callback)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
callback | 方法 | 无 | 当用户点击链接后将返回链接地址 |
var qiyuSdk = api.require('qiyuSdk');
qiyuSdk.setUrlClickCallback(
function(ret, err){
api.toast({
msg: ret,
duration: 2000,
location: 'bottom'
});
}
);
监听未读消息数,用于更新界面
setUnreadCountCallback(callback)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
callback | 方法 | 无 | 当未读消息数改变后将返回未读消息数 |
var qiyuSdk = api.require('qiyuSdk');
qiyuSdk.setUnreadCountCallback(
function(ret, err){
api.toast({
msg: '未读消息数:' + ret,
duration: 2000,
location: 'bottom'
});
}
);
主动获取未读消息数
getUnreadCount(callback)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
callback | 方法 | 无 | 返回未读消息数 |
var qiyuSdk = api.require('qiyuSdk');
qiyuSdk.getUnreadCount(
function(ret, err){
api.toast({
msg: '未读消息数:' + ret,
duration: 2000,
location: 'bottom'
});
}
);
设置CRM个人信息
setUserInfo(params)
参数名 | 类型 | 默认值 | 描述 |
---|---|---|---|
userId | 字符串类型 | 无 | 个人账号Id |
data | 字符串类型 | 无 | 用户详细信息json |
var qiyuSdk = api.require('qiyuSdk');
var params = {
userId:'uid10101010',
data:'[{\"key\":\"real_name\", \"value\":\"土豪\"},{\"key\":\"mobile_phone\", \"hidden\":true},{\"key\":\"email\", \"value\":\"13800000000@163.com\"},{\"index\":0, \"key\":\"account\", \"label\":\"账号\", \"value\":\"zhangsan\", \"href\":\"http://example.domain/user/zhangsan\"},{\"index\":1, \"key\":\"sex\", \"label\":\"性别\", \"value\":\"先生\"},{\"index\":5, \"key\":\"reg_date\", \"label\":\"注册日期\", \"value\":\"2015-11-16\"},{\"index\":6, \"key\":\"last_login\", \"label\":\"上次登录时间\", \"value\":\"2015-12-22 15:38:54\"}]'
}
qiyuSdk.setUserInfo(params);
注销当前账号
logout()
var qiyuSdk = api.require('qiyuSdk');
qiyuSdk.logout();