initMeiQia setTitleColor setTitleBarColor show setScheduledAgentOrAgentGroup setClientInfo setLoginMQClientId setLoginCustomizedId setNavRightButton getUnreadMessageCount setPreSendTextMessage addMessageListener cancelMessageListener setClientOffline getLastMessage addChatViewListener configChat deleteAllMessage setClientOnline
注意:本插件最低支持 iOS 6.0,Android 2.3
美洽是一款实现手机用户与企业保持随时随刻沟通的客服工具。本插件封装了美洽的相关接口。使用此插件之前需要先注册美洽获取 appkey。
##Appkey获取方法
使用管理员权限账号登陆美洽,在 设置 --> SDK 页面中,选择 添加 App 配置 ,根据提示配置 App 信息,然后添加 APP 即可得到 appkey
用于配置。
##多个账户聊天记录重复一样的解决办法 掉用setLoginCustomizedId方法设置不同的ID即可
初始化美洽
initMeiQia({params}, callback(ret, err))
appkey:
callback:
//创建美洽
var mq = api.require('meiQiaPlus');
//配置初始化美洽需要的appkey
var param = {
appkey: "33c19c19bd858746b878fcc93166f2e5"
};
//初始化美洽
mq.initMeiQia(param, function(ret, err) {
if (ret) {
//初始化成功
api.alert({msg: JSON.stringify(ret)});
} else {
//初始化失败
api.alert({msg: JSON.stringify(err)});
}
})
必须在初始化后才能正常使用此插件的其他方法,所以建议将初始化放在App启动时执行。美洽插件只需要初始化一次。
iOS系统,Android系统
可提供的1.0.0及更高版本
设置美洽聊天界面的标题栏中文字的颜色 setTitleColor({params})
color:
#FFFFFF
格式的HTML颜色var mq = api.require('meiQiaPlus');
//设置title以及按钮颜色
var titleColor = {
color: "#ffffff"
};
mq.setTitleColor(titleColor);
iOS系统,Android系统
可提供的1.0.0及更高版本
设置美洽聊天界面的标题栏背景颜色 setTitleBarColor({params})
color:
#FFFFFF
格式的HTML颜色var mq = api.require('meiQiaPlus');
//设置标题栏背景颜色
var titleBarColor = {
color: "#00ff00"
};
mq.setTitleBarColor(titleBarColor);
iOS系统,Android系统
可提供的1.0.0及更高版本
弹出美洽聊天界面
show(params)
showAvatar:
showTitle:
enableSendVoice:
enableSendImage:
enableSendEmoji:
enableCamera:
updateClientInfo:
var mq = api.require('meiQiaPlus');
mq.show({showAvatar:false});
如果需要指定客服setScheduledAgentOrAgentGroup()
、添加自定义信息setClientInfo()
、设置美洽顾客IDsetLoginMQClientId()
或设置自定义IDsetLoginCustomizedId()
,需要在show()
前执行,否则无效。
iOS系统,Android系统
可提供的1.0.0及更高版本
指定分配客服与客服组
setScheduledAgentOrAgentGroup({params})
agentId:
agentGroup:
scheduleRule:
var mq = api.require('meiQiaPlus');
//设置指定分配给某客服,并且如果客服不在线,则留言而不转接给其他客服
var scheduleParam = {
agentId: "ed55383a0fa82bbe8242ee16477c9ac3",
scheduleRule: "none"
};
mq.setScheduledAgentOrAgentGroup(scheduleParam);
agentId和agentGroup可只传其中一个,也可同时都传。美洽系统将优先分配指定客服,如果客服不在线,则分配到指定的客服组,如果客服组也无人在线,则分配到全部客服。如果使用该接口,那么需要在show之前调用
iOS系统,Android系统
可提供的1.0.0及更高版本
效果图:
添加规范化用户信息
setClientInfo({params})
默认参数 | 描述 |
---|---|
avatar | 头像 URL |
address | 地址 |
age | 年龄 |
comment | 备注 |
邮箱 | |
gender | 性别 |
name | 名字 |
tel | 电话 |
微博 | |
weixin | 微信 |
source | 顾客来源 |
tags | 标签,数组形式。且必须是企业中已经存在的标签 |
var mq = api.require('meiQiaPlus');
//设置用户信息
var infoParam = {
email: "dev@meiqia.com",
comment: "这是备注",
avatar: "https://app.meiqia.com/images/logo.png",
tags: ["付费用户", "使用疑问"]
};
mq.setClientInfo(infoParam);
自定义用户信息将会被传送到美洽服务端,用于对话时显示给客服人员一作参考。这些参数都是可选的,可以选择其中的一个或者多个传递。此接口必须在show之前执行。
iOS系统,Android系统
可提供的1.0.0及更高版本
设置美洽顾客的 id 后,该id对应的顾客将会上线。设置后可实现消息漫游。 setLoginMQClientId({params})
id:
var mq = api.require('meiQiaPlus');
//设置美洽ID
var clientIdParam = {
id: "9f0b2d3339edeec591a6e3be5dbafd64",
};
mq.setLoginMQClientId(clientIdParam);
如果美洽服务端没有找到该顾客 id 对应的顾客,则会返回该顾客不存在的错误。
iOS系统,Android系统
可提供的1.0.0及更高版本
使用该接口,可让美洽绑定开发者的用户系统和美洽的顾客系统。 设置开发者自定义 id 后,将会以该自定义 id 对应的顾客上线。设置后可实现消息漫游。
setLoginCustomizedId({params})
id:
var mq = api.require('meiQiaPlus');
//设置自定义用户Id
var customizedIdParam = {
id: "id00001",
};
mq.setLoginCustomizedId(customizedIdParam);
注意,如果美洽服务端没有找到该自定义 id 对应的顾客,则美洽将会自动关联该 id 与 SDK 当前的顾客。 如果开发者的自定义 id 是自增长,美洽建议开发者服务端保存美洽顾客 id,登陆时 设置登录客服的顾客 id,否则非常容易受到中间人攻击。
iOS系统,Android系统
可提供的1.0.0及更高版本
使用该接口,用于自定义聊天界面中右上角的按钮。
title:
size:
{
width:28, //(可选项)数字类型;按钮宽;默认值:28
height:28, //(可选项)数字类型;按钮高;默认值:28
}
image:
点击按钮后的回调事件
var mq = api.require("meiQiaPlus");
mq.setNavRightButton({
title:"返回",
image:'widget://res/back.png'
}, function(){
alert("right button tapped")
});
iOS系统,Android系统
可提供的1.0.0及更高版本
使用该接口获取未读消息的数目
getUnreadMessageCount(callback(ret));
ret:
{
count:2 //数字类型;未读数据条数
}
var mq = api.require("meiQiaPlus");
mq.getUnreadMessageCount(function(ret) {
api.alert({msg:JSON.stringify(ret)});
}
iOS系统,Android系统
可提供的1.0.0及更高版本
设置预发送消息,该消息将会在用户上线之后自动发送给客服,可以用于标记客户当前正在浏览的内容等客服需要了解的信息。
setPreSendTextMessage({params});
message:
var mq = api.require("meiQiaPlus");
mq.setPreSendTextMessage({
message:"This is the presend message, you can put your product here to indicate to agent that the client is browsing it"
});
iOS系统,Android系统
可提供的1.0.0及更高版本
添加消息监听
addMessageListener(callback(ret));
ret:
{
agentId: //字符串类型;客服ID
content: //字符串类型;消息内容
contenType: //字符串类型;内容类型
conversationId: //数字类型;会话ID
createdOn: //数字类型;消息创建时间(毫秒值)
enterpriseId: //数字类型;企业id
fromType: //字符串类型;消息来源类型
id: //数字类型;消息id
trackId: //数字类型;客户id
type: //字符串类型;消息类型
agentNickname: //字符串类型;客服昵称
status: //字符串类型;消息状态
avatar: //字符串类型;客服头像
mediaUrl: //字符串类型;多媒体链接 (ios不支持)
isRead: //布尔类型;是否已读
subType: //字符串类型;富文本类型 (ios不支持)
extra: //字符串类型;扩展字段 (ios不支持)
isRobot: //字符串类型;是否为机器人 (ios不支持)
}
err:
{
status:false, //布尔类型;消息状态
}
var mq = api.require("meiQiaPlus");
mq.addMessageListener(function(ret, err){
if(ret){
console.log(ret);
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消消息监听
cancelMessageListener();
var mq = api.require("meiQiaPlus");
mq.cancelMessageListener();
iOS系统,Android系统
可提供的1.0.0及更高版本
设置顾客离线
设置顾客离线后,将停止监听客服发送的消息,开发者不会再监听到即时消息广播。
如果设置了顾客离线,并且在美洽工作台配置了推送服务器,则客服发送的消息将会发送给开发者的服务端。
美洽建议:如果退出界面后需要监听客服消息,不设置顾客离线,这样开发者仍能监听到收到消息的广播,以便提醒顾客有新消息。
setClientOffline();
var mq = api.require("meiQiaPlus");
mq. setClientOffline();
iOS系统,Android系统
可提供的1.0.0及更高版本
获取最近一条消息,调用此接口前需要初始化
getLastMessage();
ret:
{
agentId: //字符串类型;客服ID
content: //字符串类型;消息内容
contenType: //字符串类型;内容类型
conversationId: //数字类型;会话ID
createdOn: //数字类型;消息创建时间(毫秒值)
enterpriseId: //数字类型;企业id
fromType: //字符串类型;消息来源类型
id: //数字类型;消息id
trackId: //数字类型;客户id
type: //字符串类型;消息类型
agentNickname: //字符串类型;客服昵称
status: //字符串类型;消息状态
avatar: //字符串类型;客服头像
mediaUrl: //字符串类型;多媒体链接 (ios不支持)
isRead: //布尔类型;是否已读
subType: //字符串类型;富文本类型 (ios不支持)
extra: //字符串类型;扩展字段 (ios不支持)
isRobot: //字符串类型;是否为机器人 (ios不支持)
}
err:
{
status:false, //布尔类型;消息状态
}
var mq = api.require("meiQiaPlus");
mq. getLastMessage();
iOS系统,Android系统
可提供的1.0.0及更高版本
添加聊天页面相关监听
addChatViewListener(callback(ret));
ret:
{
event:'' //字符串类型;事件类型;取值如下
//back:聊天页面返回按钮点击事件
}
var mq = api.require("meiQiaPlus");
mq.addChatViewListener(function(ret){
if(ret){
console.log(ret);
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
配置会话页面的相关设置
configChat(params);
注:需要在show方法之前调用
backConfig:
img:"" //字符串类型;(可选项) back键的图片地址,支持fs,widget;默认插件自带图片
w: 10, //数字类型;(可选项) back键的宽;
h: 10, //数字类型;(可选项) back键的高;
marginLeft: 10, //数字类型;(可选项) back键距离左边的距离,iOS不支持此参数;默认值:10
var mq = api.require("meiQiaPlus");
mq.configChat({backConfig:{img:'fs://back.png'}});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除本地数据库所有聊天记录
deleteAllMessage(callback(ret));
ret:
{
status:false, //布尔类型;是否成功
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var mq = api.require("meiQiaPlus");
mq.deleteAllMessage(function(ret){
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置上线,需要setLoginCustomizedId或setLoginMQClientId接口已设置客户端id后调用,上线成功后消息走回调。
setClientOnline(callback(ret));
ret:
{
status:false, //布尔类型;是否成功
}
err:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
var mq = api.require("meiQiaPlus");
mq.setClientOnline(function(ret){
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
iOS系统,Android系统
可提供的1.0.0及更高版本