- meiQia
- 论坛示例
- 概述
- 开源地址
- initMeiQia
- setTitleColor
- setTitleBarColor
- show
- setScheduledAgentOrAgentGroup
- setClientInfo
- setLoginMQClientId
- setLoginCustomizedId
- setNavRightButton
- getUnreadMessageCount
- setPreSendTextMessage
- addMessageListener
- cancelMessageListener
- setClientOffline
- getLastMessage
- addChatViewListener
- configChat
- deleteAllMessage
- 示例代码
- 可用性
- setClientOnline
- 示例代码
- 可用性
meiQia
来自于:美洽立即使用
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即可
开源地址
模块源代码和集成Demo: https://github.com/Meiqia/MeiQia_For_APICloud
模块中的美洽UI源代码: https://github.com/Meiqia/MeiqiaSDK-iOS https://github.com/Meiqia/MeiqiaSDK-Android
initMeiQia
初始化美洽
initMeiQia({params}, callback(ret, err))
params
appkey:
- 类型:字符串
- 描述:注册美洽后,从美洽后台获得的 appkey
callback:
- 类型:方法
- 描述:初始化成功将返回顾客ID(ClientId),初始化失败将返回错误描述
示例代码
//创建美洽
var mq = api.require('meiQia');
//配置初始化美洽需要的appkey
var param = {
appkey: "33c19c19bd858746b878fcc93166f2e5"
};
//初始化美洽
mq.initMeiQia(param, function(ret, err) {
if (ret) {
//初始化成功
alert(JSON.stringify(ret));
} else {
//初始化失败
alert(JSON.stringify(err));
}
})
补充说明
必须在初始化后才能正常使用此模块的其他方法,所以建议将初始化放在App启动时执行。美洽模块只需要初始化一次。
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setTitleColor
设置美洽聊天界面的标题栏中文字的颜色 setTitleColor({params})
params
color:
- 类型:字符串
- 描述:
#FFFFFF
格式的HTML颜色
示例代码
var mq = api.require('meiQia');
//设置title以及按钮颜色
var titleColor = {
color: "#ffffff"
};
mq.setTitleColor(titleColor);
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setTitleBarColor
设置美洽聊天界面的标题栏背景颜色 setTitleBarColor({params})
params
color:
- 类型:字符串
- 描述:
#FFFFFF
格式的HTML颜色
示例代码
var mq = api.require('meiQia');
//设置标题栏背景颜色
var titleBarColor = {
color: "#00ff00"
};
mq.setTitleBarColor(titleBarColor);
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
show
弹出美洽聊天界面
show(params)
params
showAvatar:
- 类型:布尔
- 描述:是否显示用户头像
- 默认值:false
showTitle:
- 类型:布尔
- 描述:是否显示title
- 默认值:true
enableSendVoice:
- 类型:布尔类型
- 描述:聊天页面是否显示发送语音按钮
- 默认:true
enableSendImage:
- 类型:布尔类型
- 描述:聊天页面是否显示发送图片按钮
- 默认:true
enableSendEmoji:
- 类型:布尔类型
- 描述:聊天页面是否显示发送表情按钮
- 默认:true
enableCamera:
- 类型:布尔类型
- 描述:聊天页面是否显示拍照按钮
- 默认:true
updateClientInfo:
- 类型:布尔类型
- 描述:是否更新用户信息,如果为true,在设置过用户信息后可以重新将setClientInfo接口设置的用户信息更新到美洽服务端
- 默认:false
示例代码
var mq = api.require('meiQia');
mq.show({showAvatar:false});
补充说明
如果需要指定客服setScheduledAgentOrAgentGroup()
、添加自定义信息setClientInfo()
、设置美洽顾客IDsetLoginMQClientId()
或设置自定义IDsetLoginCustomizedId()
,需要在show()
前执行,否则无效。
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setScheduledAgentOrAgentGroup
指定分配客服与客服组
setScheduledAgentOrAgentGroup({params})
params
agentId:
- 类型:字符串
- 描述:在美洽系统中客服对应的ID
agentGroup:
- 类型:字符串
- 描述:在美洽系统中客服组对应的ID
scheduleRule:
- 类型:字符串
- 默认值:enterprise
- 描述:
- none:不转接给任何人,让用户留言
- group: 转接给组内的人
- enterprise: 转接给企业其他随机一个人
示例代码
var mq = api.require('meiQia');
//设置指定分配给某客服,并且如果客服不在线,则留言而不转接给其他客服
var scheduleParam = {
agentId: "ed55383a0fa82bbe8242ee16477c9ac3",
scheduleRule: "none"
};
mq.setScheduledAgentOrAgentGroup(scheduleParam);
补充说明
agentId和agentGroup可只传其中一个,也可同时都传。美洽系统将优先分配指定客服,如果客服不在线,则分配到指定的客服组,如果客服组也无人在线,则分配到全部客服。如果使用该接口,那么需要在show之前调用
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setClientInfo
效果图:
添加规范化用户信息
setClientInfo({params})
params
默认参数 | 描述 |
---|---|
avatar | 头像 URL |
address | 地址 |
age | 年龄 |
comment | 备注 |
邮箱 | |
gender | 性别 |
name | 名字 |
tel | 电话 |
微博 | |
weixin | 微信 |
source | 顾客来源 |
tags | 标签,数组形式。且必须是企业中已经存在的标签 |
示例代码
var mq = api.require('meiQia');
//设置用户信息
var infoParam = {
email: "dev@meiqia.com",
comment: "这是备注",
avatar: "https://app.meiqia.com/images/logo.png",
tags: ["付费用户", "使用疑问"]
};
mq.setClientInfo(infoParam);
补充说明
自定义用户信息将会被传送到美洽服务端,用于对话时显示给客服人员一作参考。这些参数都是可选的,可以选择其中的一个或者多个传递。此接口必须在show之前执行。
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setLoginMQClientId
设置美洽顾客的 id 后,该id对应的顾客将会上线。设置后可实现消息漫游。 setLoginMQClientId({params})
params
id:
- 类型:字符串
- 描述:美洽的ClientID。会在成功初始化美洽后返回
示例代码
var mq = api.require('meiQia');
//设置美洽ID
var clientIdParam = {
id: "9f0b2d3339edeec591a6e3be5dbafd64",
};
mq.setLoginMQClientId(clientIdParam);
补充说明
如果美洽服务端没有找到该顾客 id 对应的顾客,则会返回该顾客不存在的错误。
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setLoginCustomizedId
使用该接口,可让美洽绑定开发者的用户系统和美洽的顾客系统。 设置开发者自定义 id 后,将会以该自定义 id 对应的顾客上线。设置后可实现消息漫游。
setLoginCustomizedId({params})
params
id:
- 类型:字符串
- 描述:开发者自定义的用户ID。尽量避免使用\、<、>、?、@等符号作为ID
示例代码
var mq = api.require('meiQia');
//设置自定义用户Id
var customizedIdParam = {
id: "id00001",
};
mq.setLoginCustomizedId(customizedIdParam);
补充说明
注意,如果美洽服务端没有找到该自定义 id 对应的顾客,则美洽将会自动关联该 id 与 SDK 当前的顾客。 如果开发者的自定义 id 是自增长,美洽建议开发者服务端保存美洽顾客 id,登陆时 设置登录客服的顾客 id,否则非常容易受到中间人攻击。
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setNavRightButton
使用该接口,用于自定义聊天界面中右上角的按钮。
params
title:
- 类型:字符串
- 描述:自定义按钮的文字标题
size:
- 类型:字符串
- 描述:(可选项)按钮宽高,此参数仅支持iOS
{
width:28, //(可选项)数字类型;按钮宽;默认值:28
height:28, //(可选项)数字类型;按钮高;默认值:28
}
image:
- 类型:字符串
- 描述:自定义按钮的图标,(Android 仅支持网络图片,iOS支持网络图片,fs://, widget:// 路径协议)
callback
点击按钮后的回调事件
示例代码
var mq = api.require("meiQia");
mq.setNavRightButton({
title:"返回",
image:'widget://res/back.png'
}, function(){
alert("right button tapped")
});
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
getUnreadMessageCount
使用该接口获取未读消息的数目
getUnreadMessageCount(callback(ret));
callback(ret)
ret:
- 类型:JSON 对象
- 描述:获取到的未读消息
- 内部字段:
{
count:2 //数字类型;未读数据条数
}
示例代码
var mq = api.require("meiQia");
mq.getUnreadMessageCount(function(ret) {
api.alert({msg:JSON.stringify(ret)});
}
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setPreSendTextMessage
设置预发送消息,该消息将会在用户上线之后自动发送给客服,可以用于标记客户当前正在浏览的内容等客服需要了解的信息。
setPreSendTextMessage({params});
params
message:
- 类型:字符串
- 描述:发送的消息内容
示例代码
var mq = api.require("meiQia");
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系统
可提供的3.0.0及更高版本
addMessageListener
添加消息监听
addMessageListener(callback(ret));
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:消息对象
- 内部字段:
{
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:
- 类型:JSON对象
- 描述:消息状态
- 内部字段:
{
status:false, //布尔类型;消息状态
}
示例代码
var mq = api.require("meiQia");
mq.addMessageListener(function(ret, err){
if(ret){
console.log(ret);
}
});
可用性
iOS系统,Android系统
可提供的3.3.7及更高版本
cancelMessageListener
取消消息监听
cancelMessageListener();
示例代码
var mq = api.require("meiQia");
mq.cancelMessageListener();
可用性
iOS系统,Android系统
可提供的3.3.7及更高版本
setClientOffline
设置顾客离线
设置顾客离线后,将停止监听客服发送的消息,开发者不会再监听到即时消息广播。
如果设置了顾客离线,并且在美洽工作台配置了推送服务器,则客服发送的消息将会发送给开发者的服务端。
美洽建议:如果退出界面后需要监听客服消息,不设置顾客离线,这样开发者仍能监听到收到消息的广播,以便提醒顾客有新消息。
setClientOffline();
示例代码
var mq = api.require("meiQia");
mq. setClientOffline();
可用性
iOS系统,Android系统
可提供的3.3.7及更高版本
getLastMessage
获取最近一条消息,调用此接口前需要初始化
getLastMessage();
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:消息对象
- 内部字段:
{
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:
- 类型:JSON对象
- 描述:消息状态
- 内部字段:
{
status:false, //布尔类型;消息状态
}
示例代码
var mq = api.require("meiQia");
mq. getLastMessage();
可用性
iOS系统,Android系统
可提供的3.0.1及更高版本
addChatViewListener
添加聊天页面相关监听
addChatViewListener(callback(ret));
callback(ret)
ret:
- 类型:JSON 对象
- 描述:消息对象
- 内部字段:
{
event:'' //字符串类型;事件类型;取值如下
//back:聊天页面返回按钮点击事件
}
示例代码
var mq = api.require("meiQia");
mq.addChatViewListener(function(ret){
if(ret){
console.log(ret);
}
});
可用性
iOS系统,Android系统
可提供的3.3.9及更高版本
configChat
配置会话页面的相关设置
configChat(params);
注:需要在show方法之前调用
params
backConfig:
- 类型:JSON 对象
- 描述:back键的相关设置
- 内部字段:
img:"" //字符串类型;(可选项) back键的图片地址,支持fs,widget;默认模块自带图片
w: 10, //数字类型;(可选项) back键的宽;
h: 10, //数字类型;(可选项) back键的高;
marginLeft: 10, //数字类型;(可选项) back键距离左边的距离,iOS不支持此参数;默认值:10
示例代码
var mq = api.require("meiQia");
mq.configChat({backConfig:{img:'fs://back.png'}});
可用性
iOS系统,Android系统
可提供的3.4.0及更高版本
deleteAllMessage
删除本地数据库所有聊天记录
deleteAllMessage(callback(ret));
callback(ret, err)
ret:
- 类型:JSON 对象
- android不支持
- 内部字段:
{
status:false, //布尔类型;是否成功
}
err:
- 类型:JSON对象
- android不支持
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var mq = api.require("meiQia");
mq.deleteAllMessage(function(ret){
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的3.4.4及更高版本
setClientOnline
设置上线,需要setLoginCustomizedId或setLoginMQClientId接口已设置客户端id后调用,上线成功后消息走回调。
setClientOnline(callback(ret));
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:false, //布尔类型;是否成功
}
err:
- 类型:JSON对象
- 内部字段:
{
code: 1, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var mq = api.require("meiQia");
mq.setClientOnline(function(ret){
if (ret.status) {
api.alert({ msg:'删除成功'});
} else {
api.alert({ msg:JSON.stringify(err)});
}
});
可用性
iOS系统,Android系统
可提供的3.5.6及更高版本