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),初始化失败将返回错误描述

示例代码

  1. //创建美洽
  2. var mq = api.require('meiQia');
  3. //配置初始化美洽需要的appkey
  4. var param = {
  5. appkey: "33c19c19bd858746b878fcc93166f2e5"
  6. };
  7. //初始化美洽
  8. mq.initMeiQia(param, function(ret, err) {
  9. if (ret) {
  10. //初始化成功
  11. alert(JSON.stringify(ret));
  12. } else {
  13. //初始化失败
  14. alert(JSON.stringify(err));
  15. }
  16. })

补充说明

必须在初始化后才能正常使用此模块的其他方法,所以建议将初始化放在App启动时执行。美洽模块只需要初始化一次。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setTitleColor

设置美洽聊天界面的标题栏中文字的颜色 setTitleColor({params})

params

color:

  • 类型:字符串
  • 描述:#FFFFFF格式的HTML颜色

示例代码

  1. var mq = api.require('meiQia');
  2. //设置title以及按钮颜色
  3. var titleColor = {
  4. color: "#ffffff"
  5. };
  6. mq.setTitleColor(titleColor);

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setTitleBarColor

设置美洽聊天界面的标题栏背景颜色 setTitleBarColor({params})

params

color:

  • 类型:字符串
  • 描述:#FFFFFF格式的HTML颜色

示例代码

  1. var mq = api.require('meiQia');
  2. //设置标题栏背景颜色
  3. var titleBarColor = {
  4. color: "#00ff00"
  5. };
  6. 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

示例代码

  1. var mq = api.require('meiQia');
  2. 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: 转接给企业其他随机一个人

示例代码

  1. var mq = api.require('meiQia');
  2. //设置指定分配给某客服,并且如果客服不在线,则留言而不转接给其他客服
  3. var scheduleParam = {
  4. agentId: "ed55383a0fa82bbe8242ee16477c9ac3",
  5. scheduleRule: "none"
  6. };
  7. mq.setScheduledAgentOrAgentGroup(scheduleParam);

补充说明

agentId和agentGroup可只传其中一个,也可同时都传。美洽系统将优先分配指定客服,如果客服不在线,则分配到指定的客服组,如果客服组也无人在线,则分配到全部客服。如果使用该接口,那么需要在show之前调用

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setClientInfo

效果图:

效果图

添加规范化用户信息

setClientInfo({params})

params

默认参数描述
avatar头像 URL
address地址
age年龄
comment备注
email邮箱
gender性别
name名字
qqQQ
tel电话
weibo微博
weixin微信
source顾客来源
tags标签,数组形式。且必须是企业中已经存在的标签

示例代码

  1. var mq = api.require('meiQia');
  2. //设置用户信息
  3. var infoParam = {
  4. email: "dev@meiqia.com",
  5. comment: "这是备注",
  6. avatar: "https://app.meiqia.com/images/logo.png",
  7. tags: ["付费用户", "使用疑问"]
  8. };
  9. mq.setClientInfo(infoParam);

补充说明

自定义用户信息将会被传送到美洽服务端,用于对话时显示给客服人员一作参考。这些参数都是可选的,可以选择其中的一个或者多个传递。此接口必须在show之前执行。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setLoginMQClientId

设置美洽顾客的 id 后,该id对应的顾客将会上线。设置后可实现消息漫游。 setLoginMQClientId({params})

params

id:

  • 类型:字符串
  • 描述:美洽的ClientID。会在成功初始化美洽后返回

示例代码

  1. var mq = api.require('meiQia');
  2. //设置美洽ID
  3. var clientIdParam = {
  4. id: "9f0b2d3339edeec591a6e3be5dbafd64",
  5. };
  6. mq.setLoginMQClientId(clientIdParam);

补充说明

如果美洽服务端没有找到该顾客 id 对应的顾客,则会返回该顾客不存在的错误。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setLoginCustomizedId

使用该接口,可让美洽绑定开发者的用户系统和美洽的顾客系统。 设置开发者自定义 id 后,将会以该自定义 id 对应的顾客上线。设置后可实现消息漫游。

setLoginCustomizedId({params})

params

id:

  • 类型:字符串
  • 描述:开发者自定义的用户ID。尽量避免使用\、<、>、?、@等符号作为ID

示例代码

  1. var mq = api.require('meiQia');
  2. //设置自定义用户Id
  3. var customizedIdParam = {
  4. id: "id00001",
  5. };
  6. mq.setLoginCustomizedId(customizedIdParam);

补充说明

注意,如果美洽服务端没有找到该自定义 id 对应的顾客,则美洽将会自动关联该 id 与 SDK 当前的顾客。 如果开发者的自定义 id 是自增长,美洽建议开发者服务端保存美洽顾客 id,登陆时 设置登录客服的顾客 id,否则非常容易受到中间人攻击。

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setNavRightButton

使用该接口,用于自定义聊天界面中右上角的按钮。

params

title:

  • 类型:字符串
  • 描述:自定义按钮的文字标题

size:

  • 类型:字符串
  • 描述:(可选项)按钮宽高,此参数仅支持iOS
  1. {
  2. width:28, //(可选项)数字类型;按钮宽;默认值:28
  3. height:28, //(可选项)数字类型;按钮高;默认值:28
  4. }

image:

  • 类型:字符串
  • 描述:自定义按钮的图标,(Android 仅支持网络图片,iOS支持网络图片,fs://, widget:// 路径协议)

callback

点击按钮后的回调事件

示例代码

  1. var mq = api.require("meiQia");
  2. mq.setNavRightButton({
  3. title:"返回",
  4. image:'widget://res/back.png'
  5. }, function(){
  6. alert("right button tapped")
  7. });

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

getUnreadMessageCount

使用该接口获取未读消息的数目

getUnreadMessageCount(callback(ret));

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:获取到的未读消息
  • 内部字段:
  1. {
  2. count:2 //数字类型;未读数据条数
  3. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq.getUnreadMessageCount(function(ret) {
  3. api.alert({msg:JSON.stringify(ret)});
  4. }

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setPreSendTextMessage

设置预发送消息,该消息将会在用户上线之后自动发送给客服,可以用于标记客户当前正在浏览的内容等客服需要了解的信息。

setPreSendTextMessage({params});

params

message:

  • 类型:字符串
  • 描述:发送的消息内容

示例代码

  1. var mq = api.require("meiQia");
  2. mq.setPreSendTextMessage({
  3. message:"This is the presend message, you can put your product here to indicate to agent that the client is browsing it"
  4. });

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

addMessageListener

添加消息监听

addMessageListener(callback(ret));

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
  1. {
  2. agentId: //字符串类型;客服ID
  3. content: //字符串类型;消息内容
  4. contenType: //字符串类型;内容类型
  5. conversationId: //数字类型;会话ID
  6. createdOn: //数字类型;消息创建时间(毫秒值)
  7. enterpriseId: //数字类型;企业id
  8. fromType: //字符串类型;消息来源类型
  9. id: //数字类型;消息id
  10. trackId: //数字类型;客户id
  11. type: //字符串类型;消息类型
  12. agentNickname: //字符串类型;客服昵称
  13. status: //字符串类型;消息状态
  14. avatar: //字符串类型;客服头像
  15. mediaUrl: //字符串类型;多媒体链接 (ios不支持)
  16. isRead: //布尔类型;是否已读
  17. subType: //字符串类型;富文本类型 (ios不支持)
  18. extra: //字符串类型;扩展字段 (ios不支持)
  19. isRobot: //字符串类型;是否为机器人 (ios不支持)
  20. }

err:

  • 类型:JSON对象
  • 描述:消息状态
  • 内部字段:
  1. {
  2. status:false, //布尔类型;消息状态
  3. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq.addMessageListener(function(ret, err){
  3. if(ret){
  4. console.log(ret);
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的3.3.7及更高版本

cancelMessageListener

取消消息监听

cancelMessageListener();

示例代码

  1. var mq = api.require("meiQia");
  2. mq.cancelMessageListener();

可用性

iOS系统,Android系统

可提供的3.3.7及更高版本

setClientOffline

设置顾客离线

设置顾客离线后,将停止监听客服发送的消息,开发者不会再监听到即时消息广播。

如果设置了顾客离线,并且在美洽工作台配置了推送服务器,则客服发送的消息将会发送给开发者的服务端。

美洽建议:如果退出界面后需要监听客服消息,不设置顾客离线,这样开发者仍能监听到收到消息的广播,以便提醒顾客有新消息。

setClientOffline();

示例代码

  1. var mq = api.require("meiQia");
  2. mq. setClientOffline();

可用性

iOS系统,Android系统

可提供的3.3.7及更高版本

getLastMessage

获取最近一条消息,调用此接口前需要初始化

getLastMessage();

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
  1. {
  2. agentId: //字符串类型;客服ID
  3. content: //字符串类型;消息内容
  4. contenType: //字符串类型;内容类型
  5. conversationId: //数字类型;会话ID
  6. createdOn: //数字类型;消息创建时间(毫秒值)
  7. enterpriseId: //数字类型;企业id
  8. fromType: //字符串类型;消息来源类型
  9. id: //数字类型;消息id
  10. trackId: //数字类型;客户id
  11. type: //字符串类型;消息类型
  12. agentNickname: //字符串类型;客服昵称
  13. status: //字符串类型;消息状态
  14. avatar: //字符串类型;客服头像
  15. mediaUrl: //字符串类型;多媒体链接 (ios不支持)
  16. isRead: //布尔类型;是否已读
  17. subType: //字符串类型;富文本类型 (ios不支持)
  18. extra: //字符串类型;扩展字段 (ios不支持)
  19. isRobot: //字符串类型;是否为机器人 (ios不支持)
  20. }

err:

  • 类型:JSON对象
  • 描述:消息状态
  • 内部字段:
  1. {
  2. status:false, //布尔类型;消息状态
  3. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq. getLastMessage();

可用性

iOS系统,Android系统

可提供的3.0.1及更高版本

addChatViewListener

添加聊天页面相关监听

addChatViewListener(callback(ret));

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:消息对象
  • 内部字段:
  1. {
  2. event:'' //字符串类型;事件类型;取值如下
  3. //back:聊天页面返回按钮点击事件
  4. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq.addChatViewListener(function(ret){
  3. if(ret){
  4. console.log(ret);
  5. }
  6. });

可用性

iOS系统,Android系统

可提供的3.3.9及更高版本

configChat

配置会话页面的相关设置

configChat(params);

注:需要在show方法之前调用

params

backConfig:

  • 类型:JSON 对象
  • 描述:back键的相关设置
  • 内部字段:
  1. img:"" //字符串类型;(可选项) back键的图片地址,支持fs,widget;默认模块自带图片
  2. w: 10, //数字类型;(可选项) back键的宽;
  3. h: 10, //数字类型;(可选项) back键的高;
  4. marginLeft: 10, //数字类型;(可选项) back键距离左边的距离,iOS不支持此参数;默认值:10

示例代码

  1. var mq = api.require("meiQia");
  2. mq.configChat({backConfig:{img:'fs://back.png'}});

可用性

iOS系统,Android系统

可提供的3.4.0及更高版本

deleteAllMessage

删除本地数据库所有聊天记录

deleteAllMessage(callback(ret));

callback(ret, err)

ret:

  • 类型:JSON 对象
  • android不支持
  • 内部字段:
  1. {
  2. status:false, //布尔类型;是否成功
  3. }

err:

  • 类型:JSON对象
  • android不支持
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq.deleteAllMessage(function(ret){
  3. if (ret.status) {
  4. api.alert({ msg:'删除成功'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的3.4.4及更高版本

setClientOnline

设置上线,需要setLoginCustomizedId或setLoginMQClientId接口已设置客户端id后调用,上线成功后消息走回调。

setClientOnline(callback(ret));

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
  1. {
  2. status:false, //布尔类型;是否成功
  3. }

err:

  • 类型:JSON对象
  • 内部字段:
  1. {
  2. code: 1, //数字类型;错误码
  3. msg: '' //字符串类型;错误信息
  4. }

示例代码

  1. var mq = api.require("meiQia");
  2. mq.setClientOnline(function(ret){
  3. if (ret.status) {
  4. api.alert({ msg:'删除成功'});
  5. } else {
  6. api.alert({ msg:JSON.stringify(err)});
  7. }
  8. });

可用性

iOS系统,Android系统

可提供的3.5.6及更高版本