meiQia
initMeiQia setTitleBarColor setScheduledAgentOrAgentGroup setLoginMQClientId setNavRightButton setPreSendTextMessage cancelMessageListener getLastMessage configChat setClientOnline
论坛示例
为帮助用户更好更快的使用模块,论坛维护了一个,示例中包含示例代码、知识点讲解、注意事项等,供您参考。
概述
注意:本模块最低支持 iOS 6.0,Android 2.3
美洽是一款实现手机用户与企业保持随时随刻沟通的客服工具。本模块封装了的相关接口。使用此模块之前需要先注册美洽获取 appkey。
使用管理员权限账号登陆美洽,在 设置 —> SDK 页面中,选择 添加 App 配置 ,根据提示配置 App 信息,然后添加 APP 即可得到 用于配置。
多个账户聊天记录重复一样的解决办法
掉用setLoginCustomizedId方法设置不同的ID即可
开源地址
模块源代码和集成Demo:
模块中的美洽UI源代码: https://github.com/Meiqia/MeiqiaSDK-iOS
initMeiQia
初始化美洽
initMeiQia({params}, callback(ret, err))
params
appkey:
- 类型:字符串
- 描述:注册美洽后,从美洽后台获得的 appkey
callback:
- 类型:方法
- 描述:初始化成功将返回顾客ID(ClientId),初始化失败将返回错误描述
示例代码
补充说明
必须在初始化后才能正常使用此模块的其他方法,所以建议将初始化放在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);
补充说明
可用性
iOS系统,Android系统
可提供的3.0.0及更高版本
setClientInfo
效果图:
添加规范化用户信息
setClientInfo({params})
示例代码
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
点击按钮后的回调事件
示例代码
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 对象
- 描述:获取到的未读消息
- 内部字段:
示例代码
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
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);
}
});
可用性
可提供的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: //数字类型;消息创建时间(毫秒值)
fromType: //字符串类型;消息来源类型
id: //数字类型;消息id
trackId: //数字类型;客户id
type: //字符串类型;消息类型
agentNickname: //字符串类型;客服昵称
status: //字符串类型;消息状态
avatar: //字符串类型;客服头像
mediaUrl: //字符串类型;多媒体链接 (ios不支持)
isRead: //布尔类型;是否已读
subType: //字符串类型;富文本类型 (ios不支持)
extra: //字符串类型;扩展字段 (ios不支持)
isRobot: //字符串类型;是否为机器人 (ios不支持)
}
err:
- 类型:JSON对象
- 描述:消息状态
- 内部字段:
{
status:false, //布尔类型;消息状态
}
示例代码
可用性
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));
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: '' //字符串类型;错误信息
可用性
iOS系统,Android系统
可提供的3.5.6及更高版本