UIEaseCEC

注册、登录、退出、监听

带 UI 的聊天对话页面

###消息、会话、聊天、评价、留言

推送通知

附录

概述

关于环信

环信是北京易掌云峰科技有限公司旗下一家企业级服务软件提供商,环信成立于2013年4月,并于2016年荣膺“Gartner 2016 Cool Vendor”。产品有国内上线最早规模最大的即时通讯云平台——环信即时通讯云,移动端最佳实践的全媒体智能云客服平台—环信移动客服。截至2016年上半年,环信即时通讯云共服务了82149家App客户,环信移动客服共服务了29437家企业用户.

主要产品:

环信移动客服——全媒体智能云客服倡导者。

环信即时通讯云——国内最大的即时通讯云PaaS平台。

客户互动云——移动端最佳实践的全媒体智能云客服平台。

插件概览

本插件封装了环信客户互动云SDK,在注册登录类接口基础上,扩展添加了 UI 类接口,适用于对 UI 设计要求不高的项目。可直接调用相关接口弹出对话页面,真正实现了敏捷开发。

新手上路

1. 注册

3. 客户端集成(插件使用)

使用此插件之前必须先配置 config 文件,配置方法如下:

  • 名称:UIEaseCEC
  • 参数:appKey、ios_apnsCertName
  • 配置示例:
  <feature name="UIEaseCEC">
    <param name="appKey" value="1154170221178369#apicloud" />
    <param name="ios_apnsCertName" value="81qz3dBYB5q2nGji4IYrawr1" />
    <param name="tenantId" value="59105" />
    <param name="androidMiPushAppid" value="mipushappid" />
    <param name="androidMiPushAppKey" value="mipushappkey" />
  </feature>

在android平台需要配置(iOS平台忽略此步骤)


      <meta-data
            name="com.huawei.hms.client.appid"
            value="appid=10663060" />
            

value:为华为推送appid 在华为开发者平台获取

android平台集成发送位置功能注意事项(集成百度地图)

本插件的聊天界面有发送位置的功能,如要正常使用该功能,需要到百度地图的开发者平台注册应用,并申请appKey.并配置到config文件中。iOS平台定位功能不收本配置影响

配置示例:

  <feature name="bMap">
        <param name="android_api_key" value="WP99x2mSUWEysZxUaMh0GiGCYhBV8CQI" />
        <param name="ios_api_key" value="81qz3dBYB5q2nGji4IYrawr1" />
  </feature>

字段描述:

  1. android_api_key:android版本的apiKey
  2. ios_api_key:Ios版本的apiKey

iOS 平台推送通知功能详解

本文主要介绍了使用环信 IM 时,何时会收到远程推送、如何使用远程推送、如何获取远程推送的内容。

何时会收到远程推

环信 SDK 根据 iOS App 运行的特性,主要有以下三种运行状态:

1、 当App在前台可见的时候,SDK处于前台活跃状态,此时是使用SDK长连接(addMessageListener接口 receive事件)接收消息。

2、 当App进入后台且在2分钟之内的时候,SDK处于后台活跃状态,此时是使用SDK长连接接收消息(addMessageListener接口 receive事件)。此时收到的消息会,插件会通过弹出本地通知的形式提醒用户,用户单击通知提示会启动该App。开发者亦可通过 setLocalNotification 接口设置此时是否弹出本地通知的提示。

3、 当App进入后台超过2分,被系统挂起,此时SDK处于不活跃状态,或者是主动把App进程杀死,此时如果有新消息,是通过苹果的APNs服务进行提醒的。用户点击通知提示框,开发者可通过 api.addEventListener 监听获取推送消息,详情参考下文。当App再次启动,SDK会去服务器拉取不活跃期间的消息。

如何使用远程推送

集成推送功能流程如下文所示。此过程中涉及到的 AppID 即为 Bundle Identifie,与 YonBuilder移动开发 平台上的包名是同一个东西,在 YonBuilder移动开发 平台上应用的概览里可以查看。

  1. 登录苹果开发者中心申请推送证书,本过程操作详情参考配置环信推送证书

  2. 将上一步生成的 p12 证书上传到环信:登录环信管理后台,找到要上传证书的Appkey,点击进入详情。选择“推送证书”,然后选择“iOS”,为证书起名,并记住名称,并配置在config.xml文件中(详情参考上文config 文件配置方法)。选择上传证书,将上一步中生成的P12文件上传,并设置导出时设置的密码。选择证书类型,此处是“开发环境”(如果之前用的是production,则此处应该选择生产)。填写应用包名,应为bundle id,点击上传,完成上传证书操作。本过程操作详情参考上传环信推送证书

  3. 将 1 过程中生成的 provisioning profile 文件和证书上传 YonBuilder移动开发 平台,即可在 YonBuilder移动开发 平台应用打包出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)

以上步骤都已经实现后,还需要使用您 App 的用户允许通知,才能收到远程推送。您可以在设备的设置应用中,查看当前App是否允许通知。

代码中如何获取远程推送的内容

点击通知栏的远程推送时,如果此时 App 已经被系统冻结,则YonBuilder移动开发会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

api.addEventListener({
    name: 'noticeclicked'
}, function(ret) {
    if (ret && ret.value) {
        var type = ret.type;//0YonBuilder移动开发收到的推送内容,1插件开发者自定义的
        var result = ret.value;//推送内容
    }
})

value数据格式如下:

{
    “localNotification”:false,//是否是本地通知,若为true则下文数据格式同addMessageListener接口监听receive事件回调的数据格式
    "aps":{
        "alert":{
            "body":"您有一条新消息"  // 消息内容
        },	 
        "badge":1,	           // 角标数
        "sound":"default"	// 提示音	 
     },
    "e":"自定义推送扩展",//自定义推送扩展
    "f":"6001",	// 消息发送方
    "t":"6006",	// 消息接收方	 
    "m":"373360335316321408", // 消息id
    "g":"1421300621769"  // 群组id(如果是单聊则没有该字段)
 }

如果 App 当前为活跃状态且未被系统冻结(按home键2分钟内app在后台运行状态),则您可通过在 addMessageListener 接口中监听 receive 事件捕获该消息,详情参考 addMessageListener 接口说明。此时若允许本地通知,则插件会弹出本地通知的提示框,用户点击该提示框,iOS系统会启动本App,同时api.addEventListener也会受到消息。

证书到期后,要更换新的推送证书,需要在环信管理后台将旧的删除,之后重新上传,上传时的命名要与旧证书的命名一致。一个appkey下可以传多个证书,这就可以实现夸App聊天,在不同App中初始化sdk的时候,指定不同的推送证书,每个证书对应当前App的bundle id,这样,用户在登录不同的App的时候就会绑定到不同的推送证书,从而实现夸App的聊天和推送。

注意:本插件 iOS 平台上最低适配系统版本为 iOS 8.0

集成留言相关功能

插件接口

# **easeRegister**

easeRegister({params},callback(ret, err))

params

username:

  • 类型:字符串
  • 描述:用户名

password:

  • 类型:字符串
  • 描述:密码

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否注册成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.easeRegister({
   username: '',
   password: ''
},function(ret, err) {
    if (ret.status) {
        api.alert({ msg:'注册成功'});
    } else {
        api.alert({ msg:JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **login**

登录接口

login({params},callback(ret, err))

params

username:

  • 类型:字符串
  • 描述:用户名

password:

  • 类型:字符串
  • 描述:密码

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:登录结果
  • 内部字段:
{
    status: true           //布尔类型;是否登录成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:登录结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.login({
   username: '',
   password: ''
},function(ret, err) {
    if (ret.status) {
        api.alert({ msg:'登录成功'});
    } else {
        api.alert({ msg:JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **logout**

退出登录

logout({params},callback(ret, err))

params

bIsUnbindDeviceToken:

  • 类型:布尔类型
  • 描述:是否解除device token的绑定,解除绑定后设备不会再收到消息推送,如果传入YES, 解除绑定失败,将返回err
  • 默认:true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true    //布尔类型;是否成功退出登录,true|false
}

err:

  • 类型:JSON 对象
  • 描述:退出登录失败结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.logout(function(ret, err) {
    if (ret.status) {
        api.alert({ msg:'退出登录成功'});
    } else {
        api.alert({ msg:JSON.stringify(err)});
    }
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **addConnectionListener**

添加网络监听,可以显示当前是否连接服务器

有以下几种情况, 会引起该方法的调用:

    1. 登录成功后, 手机无法上网时, 会调用该回调
    1. 登录成功后, 网络状态变化时, 会调用该回调
    1. 当前登录账号已经被从服务器端删除时会收到该回调
    1. 当前登录账号在其它设备登录时会接收到此回调

addConnectionListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    state: 'connected'    //字符串类型;网络连接状态,取值范围如下:
                          //connected:已连接
                          //disconnected:未连接
                          //accountDidRemove:当前登录账号已经被从服务器端删除
                          //accountDidLoginFromOtherDevice:当前登录账号在其它设备登录
                          //userDidForbidByServer:服务被禁用
                          //userAccountDidForcedToLogout:当前登录账号被强制退出时会收到该回调,有以下原因:1.密码被修改 2.登陆设备数过多;
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.addConnectionListener(function(ret) {
        api.alert({msg: JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# **addMessageListener**

添加消息相关事件监听

addMessageListener({params}, callback(ret, err))

params

name:

  • 类型:字符串
  • 描述:要监听的消息相关事件名称
  • 默认:receive
  • 取值范围:
    • receive:消息的监听
    • cmdReceive:cmd消息的监听
    • msgChange:消息状态发生变化的监听
    • msgDidRecall:收到消息撤回的监听 (仅ios支持)
    • msgAttachmentStatus:消息附件状态发生改变的监听(仅ios支持)
    • waitCount:待接入排队人数的监听(仅ios支持)
    • agentInput:坐席输入状态变化的监听(仅ios支持)

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    messages: []          //数组类型;仅当 name 为 receive 时本参数有值,消息组成的数组,消息详情参考附录:消息内容
    cmdMessages: []       //数组类型;仅当 name 为 cmdReceive 时本参数有值,cmd消息组成的数组,消息详情参考附录:消息内容
    recallMessageIds:[]   //数组类型;仅当 name 为 msgDidRecall 时本参数有值,撤回消息的数组
    message:{}            //字符;仅当 name 为 msgChange 时本参数有值,发生变化的消息,消息详情参考附录:消息内容
    attachmentMessage:{}  //字符;仅当 name 为 msgAttachmentStatus 时本参数有值,发生变化的消息,消息详情参考附录:消息内容
    waitCount:            //字符;仅当 name 为 waitCount 时本参数有值,待接入排队人数
    agentInput:''         //字符;仅当 name 为 agentInput 时本参数有值,坐席输入状态变化内容

    isPushMsg: false      //布尔类型;仅当 name 非 receive 时本参数有值。表示是否是远程推送而来的消息,本参数仅在iOS平台有效
}

err:

  • 类型:JSON 对象
  • 描述:消息/消息附件状态发送改变时的错误信息,仅当 name 为msgChange 或 msgAttachmentChange 时本参数有值
  • 内部字段:
{
    code:   ,         //数字类型;错误码
    msg: ''           //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.addMessageListener({
    name: 'receive'
}, function(ret) {
    if (ret.messages) {
        api.alert({msg:JSON.stringify(ret.messages)});
    }
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

# **chat**

根据IM服务号创建并打开聊天页面

chat({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

navigationBar:

  • 类型:JSON 对象
  • 描述:导航条样式配置
  • 内部字段:
{
      titleColor: '#fff',       //字符串类型;标题文字颜色;默认:#000
    bgColor: '#d6d6d6',       //字符串类型;导航条背景色;默认:#d1d1d1
    btnColor: '#fff',        //字符串类型;导航条按钮色;默认:#fff(android不支持此参数)
    navigationBarBg:''      //字符串类型;导航条背景图片;如果此参数有值,将忽略bgColor;默认值:无
}

avatar:

  • 类型:JSON 对象
  • 描述:头像样式配置
  • 内部字段:
{
    local:'',       //(可选项)字符串类型;单聊时用户头像地址,要求本地路径(fs://,widget://)
    remote:''       //(可选项)字符串类型;单聊时对方的用户头像地址,要求本地路径(fs://,widget://)
    
}

nickname:

  • 类型:JSON 对象
  • 描述:(可选项)各成员昵称信息,以username为key,昵称为value的JSON对象
  • 内部字段:
{
   local:'nickname',
   remote:'nickname'
}

Info:

  • 类型:JSON 对象
  • 描述:(可选项)商品信息;进入聊天页面后会主动生成此商品信息
  • 内部字段:
{
   title:'',              //标题
   orderTitle:'',         //订单标题;仅type为order时有效
   price:'nickname',      //价格
   desc:'nickname',       //名称
   imageUrl:'',           //图片的URL,不支持本地路径
   itemUrl:'',            //商品的URL链接
   type:'order'          //发送商品的类型;取值如下:
                         //  order:订单,自动发送
                         //  track:商品不自动发送,点击发送按钮后发送
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.chat({
    conversationId: '123',
    text: {
       size: 15,
       color: '#000'
    },
    avatar: {
       size: 40,
       corner: 20
    },
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendText**

发送文本消息

sendText({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

text:

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

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendText({
    conversationId: '',
    text: 'YonBuilder移动开发 hello',
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendImage**

发送图片消息

sendImage({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

path:

  • 类型:字符串
  • 描述:要发送的图片的路径,要求本地路径(fs://、widget://)

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendImage({
    conversationId: '',
    path: 'widget://res/abc.png',
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendLocation**

发送位置消息

sendLocation({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

address:

  • 类型:字符串
  • 描述:要发送的地址

latitude:

  • 类型:数字
  • 描述:纬度

longitude:

  • 类型:数字
  • 描述:经度

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendLocation({
    conversationId: '',
    address: '北京市天安门',
    latitude: ,
    longitude: ,
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendVoice**

发送声音消息

sendVoice({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

path:

  • 类型:字符串
  • 描述:要发送的音频的路径,要求本地路径(fs://、widget://)

length:

  • 类型:数字
  • 描述:录音时间(秒)

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendVoice({
    conversationId:'',
    path: 'widget://res/abc.mp3',
    length:6
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendControl**

发送透传消息

sendControl({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

action:

  • 类型:字符串
  • 描述:命令命令内容

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendControl({
    conversationId: '',
    action:'',
    ext: {}
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendVisitorInfo**

发送访客信息

sendVisitorInfo({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:访客信息
  • 内部字段:
{
   name:'',               //名字
   qq:'',                 //qq
   phone:'',              //电话
   companyName:'',        //公司
   nickName:'',           //昵称
   email:'',              //邮箱
   desc:'order'           
}

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendVisitorInfo({
    conversationId: '',
    info{},
    ext: {}
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendVisitorTrack**

发送轨迹消息

sendVisitorTrack({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:商品信息
  • 内部字段:
{
   title:'',              //标题
   price:'nickname',      //价格
   desc:'nickname',       //名称
   imageUrl:'',           //图片的URL,不支持本地路径
     itemUrl:'',            //商品的URL链接        
  }

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendVisitorTrack({
    conversationId: '',
    info{},
    ext: {}
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **sendOrder**

发送订单消息

sendOrder({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

info:

  • 类型:JSON 对象
  • 描述:商品信息
  • 内部字段:
{
   title:'',              //标题
   orderTitle:'',         //订单标题
   price:'nickname',      //价格
   desc:'nickname',       //名称
   imageUrl:'',           //图片的URL,不支持本地路径
   itemUrl:'',            //商品的URL链接        
  }

agentInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个客服账号,客服账号为客服的登录邮箱地址

queueInfo:

  • 类型:字符串
  • 描述:(可选项)指定某个技能组,技能组名称须和客服系统设置的技能组名称完全一致,中英文均可

ext:

  • 类型:JSON 对象
  • 描述:(可选项)扩展信息

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,          //布尔类型;是否发送成功,true|false
    message: {}            //JSON 对象;发送的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.sendOrder({
    conversationId: '',
    info{},
    ext: {}
},function(ret,err) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
    else
    api.alert({ msg:JSON.stringify(err)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **loadMessageFromDB**

从数据库中获取消息,获取到的消息是startMsgId之前或者之后的pagesize条消息;(仅ios支持)

loadMessageFromDB({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

startMsgId:

  • 类型:字符串
  • 描述:(可选项)消息id,如果不写此项,从数据库中读取最新的记录

count:

  • 类型:数字
  • 描述:(可选项) 获取条数
  • 默认值:10

direction:

  • 类型:数字
  • 描述:(可选项) 搜索方向;0:向上搜索,1:向下搜索
  • 默认值:0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true             //布尔类型;是否成功
    messages: []       //数组对象;返回会话信息,详细内容参考附件:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.loadMessageFromDB({
    conversationId: '',
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **loadConversastions**

获取所有会话

loadConversastions(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{

     status:true,               //布尔类型;是否成功
    conversastions: []       //数组对象;返回会话信息,详细内容参考附件:会话信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.loadConversastions(function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

android系统

可提供的 1.0.0 及更高版本

# **deleteConversation**

删除一条会话

deleteConversation({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

isMessage:

  • 类型:布尔
  • 描述:(可选项)是否删除相关的消息
  • 默认:true

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.deleteConversation({
    conversationId: '',
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **deleteMessage**

删除消息记录

deleteMessage({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

messageId:

  • 类型:字符串
  • 描述:(可选项)消息id,不传则删除全部聊天记录

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.deleteMessage({
    conversationId: '',
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **getMessagesCount**

获取会话未读消息数

getMessagesCount({params},callback(ret))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    count:       //数字;未读消息数
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC. getMessagesCount({
   conversationId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

android系统

可提供的 1.0.0 及更高版本

# **markAllMessagesAsRead**

未读消息数清零

markAllMessagesAsRead({params})

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.markAllMessagesAsRead({
  conversationId:''
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **evaluation**

评价会话

evaluation({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

text:

  • 类型:字符串
  • 描述:(可选项)评价内容

score:

  • 类型:数字
  • 描述:(可选项)评分;0 - 5分;大于5按照5处理,小于0按照0处理
  • 默认:5

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔;评价结果
    message: {}            //JSON 对象;评价的消息,详情参考附录:消息内容
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.evaluation({
  conversationId:'',
  text''
},function(ret) {
    if(ret.status)
    api.alert('成功');
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **getLeaveMsgs**

获取所有留言

getLeaveMsgs({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

page:

  • 类型:数字
  • 描述:(可选项)第几页,从0开始,默认为第0页
  • 默认:0

pageSize:

  • 类型:数字
  • 描述:(可选项)每一页的大小,默认为10,最大不能超过100
  • 默认:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   first:1,              //布尔类型;是否是第一页
   last:1,               //布尔类型;是否是最后一页
   number:1,             //数字类型;当前页数
   numberOfElements:1,   //数字类型;当前页留言数量
   size:1,               //数字类型;每一页数量
   totalElements:1,      //数字类型;留言总数量
   totalPages:1,         //数字类型;总页数
   entities:[{
      content:'',           //字符类型;留言内容
       created_at:'',        //字符类型;创建时间
       id:666666,            //数字类型;ID
       origin_type:'',       //字符类型;来源类型
       subject:'',           //字符类型;主题
       updated_at:'',        //字符类型;来更新时间
       version:0,            //数字类型;版本
       creator:{
           id:'',             //字符类型;字符类型;ID
           name:'',           //字符类型;名字
           type:'',           //字符类型;类型
           username:'',       //字符类型;名字          
       },
       status:{              //JSON 对象;状态
           code:'',           	 
           name:'',                       
           id:'',           
           version:'',       
       }

    }]
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.getLeaveMsgs({
    conversationId:'',
    projectId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **createLeaveMsg**

创建新留言

createLeaveMsg({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:IM服务号

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

Info:

  • 类型:JSON 对象
  • 描述:创建者信息(仅ios支持)
  • 内部字段:
{
   name:'',               //名字
   qq:'',                 //qq
   phone:'',              //电话
   companyName:'',        //公司
   avatar:'',             //头像地址
   email:'',              //邮箱
   desc:'order'           
 }

Leave:

  • 类型:JSON 对象
  • 描述:(可选项)留言
  • 内部字段:
{
   subject:'',             //主题
   content:'',             //内容
 }

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔;是否创建成功
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.createLeaveMsg({
  conversationId:'',
  projectId:'',
  Info:{

   name:'',               //名字
   qq:'',                 //qq
   phone:'',              //电话
   companyName:'',        //公司
   avatar:'',             //头像地址
   email:'',              //邮箱
   desc:'order'    
   },
   Leave:{
     subject:'',           //主题
     content:'',           //内容
   }       
  },function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **getLeaveMsgDetail**

获取留言详情

getLeaveMsgDetail({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

tickedId:

  • 类型:字符串
  • 描述:留言ID

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
      content:'',           //字符类型;留言内容
       created_at:'',        //字符类型;创建时间
       id:666666,            //数字类型;ID
       origin_type:'',       //字符类型;来源类型
       subject:'',           //字符类型;主题
       updated_at:'',        //字符类型;来更新时间
       version:,           //数字类型;版本
       creator:{
           id:'',             //字符类型;字符类型;ID
           name:'',           //字符类型;名字
           type:'',           //字符类型;类型
           username:'',       //字符类型;名字          
       },
       status:{              //JSON 对象;状态
           code:'',           	 
           name:'',                       
           id:'',           
           version:'',       
       },
       assignee:{            //JSON 对象;受理人信息
         agentNumber:'', 
         avatar:'', 
         id:'', 
         name:'', 
         phone:'', 
         type:'', 
         username:'',          
       }	

}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.getLeaveMsgDetail({
    conversationId:'',
    tickedId:'',
    projectId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **getLeaveMsgComments**

获取一个留言的所有评论

getLeaveMsgComments({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

tickedId:

  • 类型:字符串
  • 描述:留言ID

page:

  • 类型:数字
  • 描述:(可选项)第几页,从0开始,默认为第0页
  • 默认:0

pageSize:

  • 类型:数字
  • 描述:(可选项)每一页的大小,默认为10,最大不能超过100
  • 默认:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   first:1,              //布尔类型;是否是第一页
   last:1,               //布尔类型;是否是最后一页
   number:1,             //数字类型;当前页数
   numberOfElements:1,   //数字类型;当前页留言数量
   size:1,               //数字类型;每一页数量
   totalElements:1,      //数字类型;评论总数量
   totalPages:1,         //数字类型;总页数
   entities:[{
      content:'',           //字符类型;评论内容
       created_at:'',        //字符类型;创建时间
       id:666666,            //数字类型;ID
       subject:'',           //字符类型;主题
       updated_at:'',        //字符类型;来更新时间
       version:0,            //数字类型;版本
       creator:{
           id:'',             //字符类型;字符类型;ID
           name:'',           //字符类型;名字
           type:'',           //字符类型;类型
           username:'',       //字符类型;用户名  
           agentNumber:'',       
           phone:'',       
           avatar:'',         
       },
       attachments:{         //JSON 对象;附件信息
           name:'',           	 
           type:'',                       
           url:'',                
       }

    }]

}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.getLeaveMsgComments({
    conversationId:'',
    projectId:'',
    tickedId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **createLeaveMsgComment**

给一个留言添加评论

createLeaveMsgComment({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

projectId:

  • 类型:字符串
  • 描述:留言的Project ID

Info:

  • 类型:JSON 对象
  • 描述:创建者信息
  • 内部字段:
{
   name:'',               //名字
   qq:'',                 //qq
   phone:'',              //电话
   companyName:'',        //公司
   avatar:'',             //头像地址
   email:'',              //邮箱
   desc:'order'           
   }

Leave:

  • 类型:JSON 对象
  • 描述:(可选项)留言
  • 内部字段:
{
   subject:'',             //主题
   content:'',             //内容
   replyId:''              //回复那条评论的id
 }

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status:true     //布尔;是否创建成功
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.createLeaveMsgComment({
  conversationId:'',
  projectId:'',
  {

   name:'',               //名字
   qq:'',                 //qq
   phone:'',              //电话
   companyName:'',        //公司
   avatar:'',             //头像地址
   email:'',              //邮箱
   desc:'order'    
   },
   {
     subject:'',           //主题
     content:'',           //内容
   }       
  },function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **getWorkStatus**

获取工作状态

getWorkStatus({params},callback(ret,err))

params

conversationId:

  • 类型:字符串
  • 描述:(必选项)会话的id,若创建时可不传此参数

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
   status:true     //布尔;是否获取成功
   isWork:true     //布尔;是否工作中
}

err:

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

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.getWorkStatus({
    conversationId:''
},function(ret) {
    if(ret.status)
    api.alert({ msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

# **setLocalNotification**

开启关闭本地通知

开启本地通知后,app在后台运行时通过长连接收到消息时会弹出提示。此时用户点击提示后,iOS系统会启动app,开发者可在api.addEventListener接口获取消息内容,详情参考概述。

setLocalNotification({params})

params

enable:

  • 类型:字符串
  • 描述:(可选项)是否开启本地通知
  • 默认:true

title:

  • 类型:字符串
  • 描述:(可选项)本地推送提示语
  • 默认:您有一条新的消息

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.setLocalNotification({
   enable: true,
   title: '您有一条新的消息'
});

可用性

iOS系统

可提供的 1.0.0及更高版本

# **setPushOption**

设置推送全局属性

setPushOption({params},callback(ret))

params

displayName:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的昵称,不传则不设置

displayStyle:

  • 类型:字符串
  • 描述:(可选项)推送消息显示的类型
  • 默认:simpleBanner
  • 取值范围:
    • simpleBanner:简单显示"您有一条新消息"
    • messageSummary:显示消息内容

noDisturbStatus:

  • 类型:字符串
  • 描述:(可选项)消息推送的免打扰设置
  • 默认:close
  • 取值范围:
    • custom:自定义时间段免打扰
    • day:全天免打扰
    • close:关闭免打扰

noDisturbingStartH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰开始时间,小时,暂时只支持整点(小时),不传则不设置

noDisturbingEndH:

  • 类型:数字
  • 描述:(可选项)消息推送免打扰结束时间,小时,暂时只支持整点(小时),不传则不设置

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否设置成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.setPushOption({
   displayName: '',
   displayStyle: '',
   noDisturbStatus:'',
   noDisturbingStartH:,
   noDisturbingEndH:
},function(ret, err) {
    if (ret.status) {
        api.alert({ msg:'设置'});
    } else {
        api.alert({ msg:JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的 1.0.0及更高版本

# **setApnsNickname**

设置推送昵称

setApnsNickname({params},callback(ret))

params

nickname:

  • 类型:字符串
  • 描述:推送消息显示的昵称

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    status: true           //布尔类型;是否设置成功,true|false
}

err:

  • 类型:JSON 对象
  • 描述:注册结果
  • 内部字段:
{
    code: 1,           //数字类型;错误码
    msg: ''            //字符串类型;错误信息
}

示例代码

var UIEaseCEC = api.require('UIEaseCEC');
UIEaseCEC.setApnsNickname({
   nickname: ''
},function(ret, err) {
    if (ret.status) {
        api.alert({ msg:'设置'});
    } else {
        api.alert({ msg:JSON.stringify(err)});
    }
});

可用性

iOS系统

可提供的 1.0.0及更高版本

附录

### **消息内容-IOS**
  • 类型:JSON 对象
  • 描述:消息内容(仅ios支持)
  • 内部字段:
{
    messageId:''               //消息ID
    conversationId: 'cmd',     //所属会话的唯一标识符
    direction:'',              //消息方向
                               //取值如下:
                               //send:发送
                               //receive:接受
    from: '',                  //消息的发送方
    to: '',                    //消息的接收方
    messageTime: ,             //时间戳,服务器收到此消息的时间
    messageStatus:'',          //消息状态
                               //取值如下:
                               //pending:发送未开始
                               //delivering:正在发送
                               //successed:发送成功
                               //failed:发送失败
    ext:{},                    //扩展消息,由用户自定义
    body: {}                   //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容                       

 }

消息内容-Android

  • 类型:JSON 对象
  • 描述:消息内容(仅android支持)
  • 内部字段:
{

    "attributes": {
        "weichat": {
            "nameValuePairs": {
                "msg_id_for_ack": "14b4390f-6391-4feb-9d9c-5167a5cd5fe8"
            },
            "extern":""     //扩展消息,由用户自定义
        }
    },
    "body": {        //JSON 对象;消息体(消息包含的内容),,详情参考附录:消息体内容                       
        "emaObject": {
              "type": 0,   //消息体类型;0/文字,1/图片,2/视频,3/位置,4/语音,5/文件,6/命令消息
            "nativeHandler": -1047580424
        }
    },
    "direct": "SEND",     //消息方向; 取值范围:send/发送,receive/收到
    "error": 0,        //错误码
    "from": "user1",     //用户
    "imMsgId": "550818067349772788",  
    "isAcked": false,
    "isDelivered": false,         //是否被收到
    "isListened": false,           //是否被监听
    "kefuReceived": false,    //是否收到
    "msgId": "14b4390f-6391-4feb-9d9c-5167a5cd5fe8", ///消息id(每条消息都会生成唯一的一个id)
    "msgTime": 1545812125166,     //发送时间
    "status": "SUCCESS",    //发送是否成功
    "to": "kefuchannelimid_969138",   //客服 服务号
    "type": "TXT"       //发送内容
}

消息体内容

  • 类型:JSON 对象
  • 描述:消息体包含的内容及其相关信息(仅IOS支持)
  • 内部字段:
{
    type: '',               //字符串类型;消息体的类型,取值范围如下:
                            //text:文本类型
                            //image:图片类型
                            //video:视频类型
                            //location:位置类型
                            //voice:语音类型
                            //file:文件类型
                            //cmd:命令类型
    ...: ...                //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、视频、位置、语音、文件、命令
}
### **消息体-文本**
  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
{
    type: 'text', 
    text: ''                //字符串类型;文本内容
}
### **消息体-图片**
  • 类型:JSON 对象
  • 描述:图片类型的消息体内容
  • 内部字段:
{
    type: 'image', 
    displayName: '',            //字符串类型;附件的显示名
    localPath: '',              //字符串类型;附件的本地路径
    remotePath: '',             //字符串类型;附件在服务器上的路径
    secretKey: '',              //字符串类型;附件的密钥, 下载附件时需要密匙做校验
    fileLength: ,               //数字类型;附件的大小, 以字节为单位
    downloadStatus: '',         //字符串类型;附件的下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
    thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
    size: {                     // JSON 对象;图片大小
       width: ,                 //数字类型;图片的宽
       height:                  //数字类型;图片的高
    },
    compressionRatio: ,         //数字类型;设置发送图片消息时的压缩率,1.0时不压缩,默认值是0.6,如果设置了小于等于0的值,则使用默认值
    thumbnailDisplayName: '',   //字符串类型;缩略图的显示名
    thumbnailLocalPath: '',     //字符串类型;缩略图的本地路径
    thumbnailRemotePath: '',    //字符串类型;缩略图在服务器的路径
    thumbnailSecretKey: '',     //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
    thumbnailSize: {            // JSON 对象;缩略图片大小
       width: ,                 //数字类型;图片的宽
       height:                  //数字类型;图片的高
    },
    thumbnailFileLength:        //数字类型;缩略图文件的大小, 以字节为单位
}
### **消息体-视频**
  • 类型:JSON 对象
  • 描述:视频类型的消息体内容
  • 内部字段:
{
    type: 'video', 
    duration: '',                //数字类型;视频时长, 秒为单位
    displayName: '',            //字符串类型;附件的显示名
    localPath: '',              //字符串类型;附件的本地路径
    remotePath: '',             //字符串类型;附件在服务器上的路径
    secretKey: '',              //字符串类型;附件的密钥, 下载附件时需要密匙做校验
    fileLength: ,               //数字类型;附件的大小, 以字节为单位
    downloadStatus: '',         //字符串类型;附件的下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
    thumbnailLocalPath: '',     //字符串类型;缩略图的本地路径
    thumbnailRemotePath: '',    //字符串类型;缩略图在服务器的路径
    thumbnailSecretKey: '',     //字符串类型;缩略图的密钥, 下载缩略图时需要密匙做校验
    thumbnailSize: {            // JSON 对象;缩略图片大小
       width: ,                 //数字类型;图片的宽
       height:                  //数字类型;图片的高
    },
    thumbnailDownloadStatus: '',//字符串类型;缩略图下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
}
### **消息体-位置**
  • 类型:JSON 对象
  • 描述:位置类型的消息体内容
  • 内部字段:
{
    type: 'location', 
    address: '',               //字符串类型;地址信息
    latitude: ,                //数字类型;纬度
    longitude:                 //数字类型;经度
}
### **消息体-语音**
  • 类型:JSON 对象
  • 描述:语音类型的消息体内容
  • 内部字段:
{
    type: 'voice', 
    duration: '',               //数字类型;语音时长, 秒为单位
    displayName: '',            //字符串类型;附件的显示名
    localPath: '',              //字符串类型;附件的本地路径
    remotePath: '',             //字符串类型;附件在服务器上的路径
    secretKey: '',              //字符串类型;附件的密钥, 下载附件时需要密匙做校验
    fileLength: ,               //数字类型;附件的大小, 以字节为单位
    downloadStatus: ''          //字符串类型;附件的下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
}
### **消息体-文件**
  • 类型:JSON 对象
  • 描述:文本类型的消息体内容
  • 内部字段:
{
    type: 'file', 
    displayName: '',            //字符串类型;附件的显示名
    localPath: '',              //字符串类型;附件的本地路径
    remotePath: '',             //字符串类型;附件在服务器上的路径
    secretKey: '',              //字符串类型;附件的密钥, 下载附件时需要密匙做校验
    fileLength: ,               //数字类型;附件的大小, 以字节为单位
    downloadStatus: ''          //字符串类型;附件的下载状态,取值范围如下:
                                //downloading:正在下载
                                //successed:下载成功
                                //failed:下载失败
                                //pending:准备下载
}
### **消息体-命令**
  • 类型:JSON 对象
  • 描述:命令类型的消息体内容
  • 内部字段:
{
    type: 'cmd', 
    action: '',                //字符串类型;命令内容
}
### **会话信息-ios**
  • 类型:JSON 对象
  • 描述:命令类型的消息体内容(仅ios支持)
  • 内部字段:
{
    conversationId: 'cmd',     //会话唯一标识
    unreadMessagesCount:6,     //会话未读消息数量
    latestMessage:{}           //会话最新一条消息;内容参考消息信息
 }

会话信息-Android

  • 类型:JSON 对象
  • 描述:命令类型的消息体内容(仅android支持)
  • 内部字段:
[
{

    "conversationId": "",        //字符串类型;服务号
    "messages": [] ,                    //JSON数组;每条消息内容,详情可查看消息内容
    "msgCount": ,                  //数字类型;消息总数
    "unreadMsgCount":          //数字类型;未读消息数
    "mOfficialAccount":{        //JSON对象类型;客服账号信息
        “id”:"",                //字符串类型;账号id
        "name":"",         //字符串类型;name
        "type":""            //字符串类型;类型
    }
    
},
 ]
是否仍需要帮助? 请保持联络!
最后更新于 2024/12/2