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颜色

示例代码

  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);

补充说明

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

setClientInfo

效果图:

效果图

添加规范化用户信息

setClientInfo({params})

示例代码

  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. mq.setNavRightButton({
  2. title:"返回",
  3. image:'widget://res/back.png'
  4. }, function(){
  5. alert("right button tapped")
  6. });

可用性

iOS系统,Android系统

可提供的3.0.0及更高版本

getUnreadMessageCount

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

getUnreadMessageCount(callback(ret));

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:获取到的未读消息
  • 内部字段:

示例代码

  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. agentNickname: //字符串类型;客服昵称
  12. status: //字符串类型;消息状态
  13. avatar: //字符串类型;客服头像
  14. mediaUrl: //字符串类型;多媒体链接 (ios不支持)
  15. isRead: //布尔类型;是否已读
  16. subType: //字符串类型;富文本类型 (ios不支持)
  17. extra: //字符串类型;扩展字段 (ios不支持)
  18. isRobot: //字符串类型;是否为机器人 (ios不支持)
  19. }

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. });

可用性

可提供的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. fromType: //字符串类型;消息来源类型
  8. id: //数字类型;消息id
  9. trackId: //数字类型;客户id
  10. type: //字符串类型;消息类型
  11. agentNickname: //字符串类型;客服昵称
  12. status: //字符串类型;消息状态
  13. avatar: //字符串类型;客服头像
  14. mediaUrl: //字符串类型;多媒体链接 (ios不支持)
  15. isRead: //布尔类型;是否已读
  16. subType: //字符串类型;富文本类型 (ios不支持)
  17. extra: //字符串类型;扩展字段 (ios不支持)
  18. isRobot: //字符串类型;是否为机器人 (ios不支持)
  19. }

err:

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

示例代码

可用性

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));

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: '' //字符串类型;错误信息

可用性

iOS系统,Android系统

可提供的3.5.6及更高版本