UIRongChat

初始化和连接

通知推送

会话

消息、未读消息、历史消息的处理

打开带UI的会话界面及列表

注意:

UIRongChat 是针对对UI和功能需求不那么高的开发者推出的插件。如果你的项目对UI和功能要求很深,请在充分调研本插件是否满足需求后再决定使用。本插件提供的UI接口不满足需求,建议使用 rongCloud2 插件,让前端去实现UI部分。请在项目启动前做好调研评估后再决定是否使用本插件。

概述

融云 Rong Cloud 是国内首家专业的即时通讯云服务提供商,专注为互联网、移动互联网开发者提供即时通讯基础能力和云端服务。通过融云平台,开发者不必搭建服务端硬件环境,就可以将即时通讯、实时网络能力快速集成至应用中。

UIRongChat 封装了融云即时通讯能力库 IMLib SDK 的部分 API,同时也封装了 IMKit 的部分接口。本插件自带 UI,方便开发者快速将融云即时通讯功能集成到自己 App 内。

使用 UIRongChat 插件之前,请先 注册 融云的开发者帐号并申请创建 App,创建 App 后,可以在 开发者后台 获取 App Key 和 App Secret 用于开发。

开发前请先认真阅读相关的 融云开发文档和视频

iOS 平台推送通知功能详解

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

何时会收到远程推

在使用远程推送之前,您需要先了解融云 SDK 的运行状态。

融云SDK的运行状态及其内容的接受

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

1、 前台状态 如字面意思,App 前台可见时插件处于前台状态。此时 App 使用融云的长连接通道来收发消息。

2、 后台活动状态 当 App 进入后台 2 分钟之内,插件于后台活跃状态。此时 App 使用融云的长连接通道接收消息。

3、 后台暂停状态当 App 进入后台 2 分钟之后或被杀进程或被冻结,插件处于后台暂停状态。此时融云的长连接通道会断开,融云 Server 会通过 APNs 将消息以远程推送的形式下发到客户端。 此状态下如果有人给该用户发送消息,融云的服务器会根据 deviceToken 和推送证书将消息发送到苹果推送服务器,苹果服务器会将该消息推送到客户端。

远程推送和本地推送

远程推送消息是通过苹果的 APNs 通道实现从融云到用户终端的。其大体流程是:融云服务器--->苹果服务器--->用户手机终端--->手机弹出提示框--->用户点击提示框--->目标App收到推送消息。注意:如果用户不算通过点击推送提示框打开App的,则app收不到任何有关此推送的消息。

本地推送是指 App 还在运行时(前台状态和刚进入后台2分钟之内的状态),app通过代码让系统弹出推送的提示框,虽然对用户来说效果跟远程推送一样,但其实现原理不同。

如何使用远程推送

此过程的 1-4 步骤请参考融云官方的 推送开发指南----如何使用远程推送。其中涉及到的 AppID即为 Bundle Identifie,与 YonBuilder移动开发 平台上的包名是同一个东西,在 YonBuilder移动开发 平台上应用的概览里可以查看。

  1. 为 App 开启远程推送服务
  2. 生成并上传 P12 证书
  3. 融云开发者平台上传 p12 证书
  4. 生成 provisioning profile 文件
  5. 将 provisioning profile 文件上传 YonBuilder移动开发 平台
  6. 在 YonBuilder移动开发 平台应用打包出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)
  7. 用户允许推送

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

如何获取远程推送的内容

远程推送的格式

远程推送的格式

{
  "aps" :
      {
         "alert" : "You got your emails.",
         "badge" : 1,
         "sound" : "default"
      },
   "rc":{"cType":"PR","fId":"xxx","oName":"xxx","tId":"xxxx","id":"46s54fad","rc-dlt-identifier":"dafasdfkweo"},
   "appData":"xxxx"
}

融云消息的远程推送内容详解:

rc 数据说明:

名称 类型 说明
alert String 远程推送显示的内容。自带的消息会有默认显示,如果您使用的是自定义消息,需要在发送时设置。对应于 iOS 发送消息接口中的 pushContent。
cType String 会话类型。PR 指单聊、 DS 指讨论组、 GRP 指群组、 CS 指客服、SYS 指系统会话、 MC 指应用内公众服务、 MP 指跨应用公众服务。
fId String 消息发送者的用户 ID。
oName String 消息类型,参考融云消息类型表.消息标志;可自定义消息类型。
tId String Target ID。
id String 当前推送的消息唯一标识,对应消息路由功能中的 msgUID。
rc-dlt-identifier String 当发送的是一条撤回消息推送时,为需要撤回消息的 ID,对应消息路由功能中的 msgUID。
appData String 远程推送的附加信息,对应于 iOS 发送消息接口中的 pushData。

远程推送内容的获取

App 已经被系统冻结杀死(后台暂停状态)时,收到远程推送屏幕顶部(或锁屏页)会弹出提示框。用户点击通知提示框时,则YonBuilder移动开发会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:

api.addEventListener({
    name: 'noticeclicked'
}, function(ret) {
    if (ret && ret.value) {
        var result = ret.value;
    }
})

注意:如果此时用户直接点击 App 图标启动 app,则开发者无法获取推送的任何信息。

如果 App 未被系统冻结(前台和刚进后台 2 分钟之内的状态),此时即时通讯相关消息(比如聊天消息)走融云长链接通道,插件自动处理(弹出本地通知)。非即时通讯相关消息(比如从融云后台发一条广告给App所有用户),则在 pushListener 接口中可以捕获该消息,详情参考 pushListener 接口说明。

android 平台推送通知功能详解

android集成小米推送

  • 集成小米推送需要依赖YonBuilder移动开发平台的mipush插件
  • 在小米开发者平台申请应用,并将appid和appkey配置到init接口中
  • 在小米开发者平台申请应用后,需要将APP Secret配置到融云控制台的应用标识

android集成华为推送

  • 集成华为推送需要依赖YonBuilder移动开发平台的huaweiPush插件,并在config中配置huaweiPush插件
  • 在华为开发者平台申请应用,并将init接口中的huaweiPush参数设置为true
  • 在华为开发者平台申请应用后,需要将华为的相关参数配置到融云控制台的应用标识

Android 平台推送集成说明

  • 融云默认使用自己平台的推送服务,由于该推送服务属于应用级别的,所以可能受到系统平台的限制,建议您在使用时,在设置里打开自启动权限和通知权限,或者勾选“信任此应用”等,以提高推送到达率

  • 集成第三方推送(使用thirdpartPush自定义插件)

thirdpartPush 插件集成了小米、魅族、vivo、oppo平台的推送,在使用该插件之前需要到相应的平台创建应用并获取相应的 appKey & appSecret等信息,并登录融云开发者后台在应用标识中配置相应的信息,并将该插件以自定义插件形式编译打包 注意:需要在调用init方法是配置或开启相应的第三方推送

  • config.xml中需要单独配置vivo推送,配置如下:
<!-- vivo 推送配置项 -->
<meta-data name="com.vivo.push.api_key" value="您的 vivo 推送平台生成 AppKey"/>
<meta-data name="com.vivo.push.app_id"  value="您的 vivo 推送平台生成 AppID"/>
  • config.xml中需要单独配置华为推送,配置如下:
<meta-data name="com.huawei.hms.client.appid" value="华为推送appID"/>

Android 使用注意事项:

使用该插件需要在config.xml中进行如下配置(可参考:/docs/Technical-Topics/Introduction-Config-Config_Xml#35-2):

<intent-filter>
    <action name="android.intent.action.VIEW"/>
    <category name="android.intent.category.DEFAULT"/>
    <data scheme="rong" host="你的包名" pathPrefix="/conversation/"/>
</intent-filter>

<intent-filter>
   <action name="android.intent.action.VIEW" />
   <category name="android.intent.category.DEFAULT" />
   <data host="你的包名" path="/conversationlist" scheme="rong" />
</intent-filter>

<intent-filter>
    <action name="android.intent.action.VIEW" />
    <category name="android.intent.category.DEFAULT" />
    <data host="你的包名" pathPrefix="/push_message" scheme="rong" />
</intent-filter>

其中 data中的host为集成应用的包名

  • 1、android本插件必须使用升级环境编译
  • 2、最低android版本要求4.4
  • 3、android上点击推送过来的消息,开发者可以在appintent事件中接收到该消息的内容,可以从appParam参数的rong_params字段中获取;

关于聊天页面语音转文字功能

使用本插件之前需要先去科大讯飞开放平台注册开发者账号,然后创建app,获取 appID ,接着给创建的 app 添加语音听写服务。最后下载SDK包。

并将 appID 配置到 config.xml 文件。示例如下:

<feature name="UIRongChat">
      <param name="iflyAppID" value="5dce6d60" />
</feature>

【ios平台使用插件的配置】

1,配置 plist 文件

在 iOS 9 下直接进行 HTTP 请求时会收到错误提示。不能直接使用 HTTP 进行请求,需要在 Info.plist 新增一段用于控制 ATS 的配置:

<key>NSAppTransportSecurity</key> <dict>
<key>NSAllowsArbitraryLoads</key> <true/>
</dict>

2,应用打包时的配置

应用打包时,需要申请访问的权限:麦克风、定位(使用期间)、定位(始终)、通讯录。注意:iOS最低适配版本为 iOS8, 需要在应用打包界面,右上角的高级设置里,选择支持iOS版本为8.0以上。

3,动态库配置 ----- 附加插件制作

由于科大讯飞的 SDK 是动态生成的。所以需要开发者将动态生成的的 SDK 打包成一个附加自定义插件上传 YonBuilder移动开发 平台。制作方法如下:

下载 UIRongCloudIfly 插件 zip 包并解压,把从科大讯飞下载得到的 iflyMSC.framework 放到 zip 包内 target 目录下,删除原有的libACrcIflyRecognize.a。然后重新压缩为 zip 包文件上传自定义插件,应用打包时勾选该插件。

插件接口

init

初始化融云 SDK,调用 connect 连接前务必保证调用此方法

调用前请在 config.xml 中设置内容如下:

<feature name="UIRongChat">
    <param name="appKey" value="此处填写 App Key 值" />
     <!-- 通知通道名称,适配 Android 8.0+ 通知机制,该字段仅对Android有效 -->
    <param name="notificationChannelName" value="" />
    <!-- 通知通道ID,适配 Android 8.0+ 通知机制,该字段仅对Android有效-->
    <param name="notificationChannelId" value=""/>
</feature>

其中 value 的值请替换为您在融云开发者平台上申请的 App Key 值

init(params, callback(ret, err))

params

miPush:

  • 类型:JSON对象
  • 描述:(可选项)配置小米推送的信息
  • 内部字段:
{
    appId:  //字符串类型;小米后台申请的appid
    appKey: //字符串类型;小米后台申请的appKey
}

huaweiPush:

  • 类型:布尔类型
  • 描述:(可选项) 是否集成华为推送
  • 默认值:false

meizuPush:

  • 类型:JSON对象
  • 描述:(可选项)魅族推送配置(需到魅族开发者平台去申请)
  • 内部字段:
{
    appId:'',     // 字符串;魅族推送的AppID
    appKey:''     // 字符串;魅族推送 AppKey
}

oppoPush:

  • 类型:JSON对象
  • 描述:(可选项)oppo推送配置(需到oppo开发者平台去申请)
  • 内部字段:
{
    appKey:'',     // 字符串;oppo推送的key
    appSecret:''   // 字符串;oppo推送 secret
}

vivoPush:

  • 类型:布尔类型
  • 描述:(可选项) 是否集成vivo推送
  • 默认:false

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:初始化的状态,如果 config.xml 中没有设置 appKey 值,会导致失败,错误信息为参数错误
  • 内部字段:
{
    status:          //布尔类型;是否成功;true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: -10002	   //数字类型;错误码,输入参数错误
}

示例代码

var rong = api.require('UIRongChat');
rong.init(function(ret, err) {
   if (!ret.status)
     api.toast({ msg: err.code });
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

connect

连接融云 IM 服务器,进行后续各种方法操作前务必要先调用此方法

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

params

token:

  • 类型:字符串
  • 描述:从服务端获取的用户身份令牌(Token)

timeLimit:

  • 类型:数字
  • 描述;SDK 连接的超时时间,单位: 秒。
  • 注意:timeLimit <= 0,SDK 会一直连接,直到连接成功或者出现 SDK 无法处理的错误(如 token 非法)。timeLimit > 0,SDK 最多连接 timeLimit 秒,超时时返回 RC_CONNECT_TIMEOUT 错误,并不再重连。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:返回的登录成功或者失败的状态
  • 内部字段:
{
    status:  ,        //布尔类型;是否链接成功
    userId:           //字符串类型;用户ID
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    code: 31004	// 错误码
}

错误说明 更多状态码

错误码 说明
31003 服务器不可用
31004 错误的令牌(Token),Token 解析失败,请重新向身份认证服务器获取 Token
31002 可能是错误的 App Key,或者 App Key 被服务器积极拒绝
33002 服务端数据库错误
31000 服务器超时
-10000 未调用 init 方法进行初始化
-10002 输入参数错误
-1000 (此错误只发生在 iOS)当已经 connect 成功后再次 connect 时会返回此错误

示例代码

var rong = api.require('UIRongChat');
rong.connect({
    token: 'ThptTWyiPPPvZHvuSiuri82yq+hfEluLjZ78E1qo4hEVSFQNpqdoPu406urMWKN4Z3/olWR+v9JVLAwfOQoLrA=='},function(ret, err) {
    if (ret.status) api.toast({ msg: ret.userId });
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

disconnect

断开连接

disconnect({params})

params

isReceivePush:

  • 类型:布尔
  • 描述:(可选项)断开后是否接收推送消息,false时相当于 logout()接口
  • 默认值:false

示例代码

var rong = api.require('UIRongChat');
rong.disconnect({
    isReceivePush: true
}); // 断开,且不再接收 Push

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

logout

注销登录(不再接收 Push 消息)

logout()

示例代码

var rong = api.require('UIRongChat');  
rong.logout(); // 断开,且不再接收 Push

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getCurrentUserId

获取当前连接用户的信息

getCurrentUserId(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    currentUserId: 'apple' //字符串类型;当前连接用户
}

示例代码

var rong = api.require('UIRongChat');  
rong.getCurrentUserId(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getConnectionStatus

获取连接状态

getConnectionStatus(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:连接状态枚举,参见 连接状态
  • 内部字段:
{
    connectionStatus: 'CONNECTED'  //字符串类型;连接状态
}

示例代码

var rong = api.require('UIRongChat');
rong.getConnectionStatus(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setConnectionStatusListener

设置连接状态变化的监听器,请在调用 init 方法之后,调用 connect 方法之前设置

setConnectionStatusListener(callback(ret, err))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:连接服务器的回调返回值,参见 连接状态
  • 内部字段:
{
    connectionStatus: 'CONNECTED' //字符串类型;连接状态
}

示例代码

var rong = api.require('UIRongChat');
rong.setConnectionStatusListener(function(ret) {
    api.toast({ msg: ret.connectionStatus });
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

推送消息的监听

pushListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    content: '',         // 字符串类型;推送内容
    data:'',             // 字符串类型;推送数据
    pushId:'',           // 字符串类型;推送id
    pushTitle:'',        // 字符串类型;推送标题
    senderId:'',         // 字符串类型;推送senderId
    senderName:'',       // 字符串类型;推送senderName
    targetId:'',         // 字符串类型;推送targetId
    targetUserName:'',   // 字符串类型;推送
    result:{}            // JSON对象;iOS端收到的推送消息,详情参考概述部分文档。
}

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

enableLocalNotification

设置本地推送提示

enableLocalNotification()

示例代码

var rong = api.require('UIRongChat');
rong.enableLocalNotification()

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

disableLocalNotification

设置本地推送消息不提示

disableLocalNotification()

示例代码

var rong = api.require('UIRongChat');
rong.disableLocalNotification()

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setNotificationQuietHours

设置消息通知免打扰时间,此方法会屏蔽该会话在该时间段的远程推送;

setNotificationQuietHours({params}, callback(ret))

params

startTime:

  • 类型:字符串
  • 描述:起始时间 格式 HH:MM:SS

spanMinutes:

  • 类型:数字
  • 描述:间隔分钟数 0 < spanMinutes < 1440。

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    status:      //布尔类型;状态码
    code:        //数字类型;status为false时有值,错误码
}

示例代码

var rong = api.require('UIRongChat');
rong.setNotificationQuietHours({
    startTime: '22:00:00',
    spanMinutes: 6
}, function(ret) {
    api.toast({ msg: ret.status });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

removeNotificationQuietHours

移除消息通知免打扰时间

removeNotificationQuietHours(callback(ret))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    status:      //布尔类型;是否成功
    code:        //数字类型;status为false时有值,错误码
}

示例代码

var rong = api.require('UIRongChat');
rong.removeNotificationQuietHours(function(ret) {
    api.toast({ msg: ret.status });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getNotificationQuietHours

获取消息通知免打扰时间

getNotificationQuietHours(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    status:,                //布尔类型;状态码
   startTime: "22:00:00",  //字符串类型;起始时间
   spanMinutes: 6,         //数字类型;间隔分钟数
    code:                   //数字类型;status为false时有值,错误码
}

示例代码

var rong = api.require('UIRongChat');
rong.getNotificationQuietHours(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getConversationList

分页获取会话列表

会话列表按照时间从前往后排列,如果有置顶会话,则置顶会话在前

getConversationList({params},callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

count:

  • 类型:数字
  • 描述:(可选项)获取的数量(当实际取回的会话数量小于 count 值时,表明已取完数据)
  • 默认:10

startTime:

  • 类型:数字
  • 描述:(可选项)会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取)
  • 默认:0

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话列表
  • 内部字段:
{
    conversationList: [
        {
            conversationTitle: 'Ironman',           //字符串类型;会话标题
            conversationType: 'PRIVATE',            //字符串类型;参见 会话类型 枚举
            draft: '',                              //字符串类型;文字消息草稿的内容
            targetId: 'group001',                   //字符串类型;消息目标 Id
            latestMessage: {                        //JSON对象;最后一条消息的内容
             text: 'Hello world!',                //字符串类型;
             extra: ''                            //字符串类型;
            },
            readReceiptInfo:{                       //JSON对象;注:如果此字段无值,则返回空
               hasRespond:true,                     //布尔类型;是否已经发送回执
               isReceiptRequestMessage:true,        //布尔类型;是否需要回执消息
               userIdList:{},                       //JSON对象;发送回执的用户ID列表 (android不支持)
               userIds:[]                           //JSON对象;;发送回执的用户ID和时间戳列表 (ios不支持)
            },
            sentStatus: 'SENT',                     //字符串类型;参见发送出的消息状态
            objectName: 'RC:TxtMsg',                //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
            receivedStatus: 'READ',                 //字符串类型;参见接收到的消息状态
            senderUserId: '55',                     //字符串类型;发送消息的用户 Id
            unreadMessageCount: 10,                 //数字类型;本会话的未读消息数
            receivedTime: 1418968547905,            //数字类型;发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            sentTime: 1418968488063,                //数字类型;收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            isTop: false,                           //布尔类型;置顶状态
            latestMessageId: 608                    //数字类型;本会话最后一条消息 Id,
            mentionedCount: 2                       //数字类型;本会话里自己被@的消息数量(iOS不支持)
            hasUnreadMentioned:true                 //布尔类型;会话中是否存在被@的消息,在清除会话未读数的时候,会将此状态置成false(android不支持)
        }
    ]
}

示例代码

var rong = api.require('UIRongChat');
rong.getConversationList(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getConversation

获取某一会话信息

getConversation({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话信息
  • 内部字段:
{
    conversation: {
           conversationTitle: 'Ironman',           //字符串类型;会话标题
            conversationType: 'PRIVATE',            //字符串类型;参见 会话类型 枚举
            draft: '',                              //字符串类型;文字消息草稿的内容
            targetId: 'group001',                   //字符串类型;消息目标 Id
            latestMessage: {                        //JSON对象;最后一条消息的内容
             text: 'Hello world!',                //字符串类型;
             extra: ''                            //字符串类型;
            },
            readReceiptInfo:{                       //JSON对象;注:如果此字段无值,则返回空
               hasRespond:true,                     //布尔类型;是否已经发送回执
               isReceiptRequestMessage:true,        //布尔类型;是否需要回执消息
               userIdList:{},                       //JSON对象;发送回执的用户ID列表 (android不支持)
               userIds:[]                           //JSON对象;;发送回执的用户ID和时间戳列表 (ios不支持)
            },
            sentStatus: 'SENT',                     //字符串类型;参见发送出的消息状态
            objectName: 'RC:TxtMsg',                //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
            receivedStatus: 'READ',                 //字符串类型;参见接收到的消息状态
            senderUserId: '55',                     //字符串类型;发送消息的用户 Id
            unreadMessageCount: 10,                 //数字类型;本会话的未读消息数
            receivedTime: 1418968547905,            //数字类型;发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            sentTime: 1418968488063,                //数字类型;收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            isTop: false,                           //布尔类型;置顶状态
            latestMessageId: 608                    //数字类型;本会话最后一条消息 Id,
            mentionedCount: 2                       //数字类型;本会话里自己被@的消息数量(iOS不支持)
            hasUnreadMentioned:true                 //布尔类型;会话中是否存在被@的消息,在清除会话未读数的时候,会将此状态置成false(android不支持)
        }
}

示例代码

var rong = api.require('UIRongChat');
rong.getConversation({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getTopConversationList

获取置顶会话列表

getTopConversationList({params},callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话列表
  • 内部字段:
{
    conversationList:[ {
            conversationTitle: 'Ironman',           //字符串类型;会话标题
            conversationType: 'PRIVATE',            //字符串类型;参见 会话类型 枚举
            draft: '',                              //字符串类型;文字消息草稿的内容
            targetId: 'group001',                   //字符串类型;消息目标 Id
            latestMessage: {                        //JSON对象;最后一条消息的内容
             text: 'Hello world!',                //字符串类型;
             extra: ''                            //字符串类型;
            },
            readReceiptInfo:{                       //JSON对象;注:如果此字段无值,则返回空
               hasRespond:true,                     //布尔类型;是否已经发送回执
               isReceiptRequestMessage:true,        //布尔类型;是否需要回执消息
               userIdList:{},                       //JSON对象;发送回执的用户ID列表 (android不支持)
               userIds:[]                           //JSON对象;;发送回执的用户ID和时间戳列表 (ios不支持)
            },
            sentStatus: 'SENT',                     //字符串类型;参见发送出的消息状态
            objectName: 'RC:TxtMsg',                //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
            receivedStatus: 'READ',                 //字符串类型;参见接收到的消息状态
            senderUserId: '55',                     //字符串类型;发送消息的用户 Id
            unreadMessageCount: 10,                 //数字类型;本会话的未读消息数
            receivedTime: 1418968547905,            //数字类型;发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            sentTime: 1418968488063,                //数字类型;收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            isTop: false,                           //布尔类型;置顶状态
            latestMessageId: 608                    //数字类型;本会话最后一条消息 Id,
            mentionedCount: 2                       //数字类型;本会话里自己被@的消息数量(iOS不支持)
            hasUnreadMentioned:true                 //布尔类型;会话中是否存在被@的消息,在清除会话未读数的时候,会将此状态置成false(android不支持)
    } ]
}

示例代码

var rong = api.require('UIRongChat');
rong.getTopConversationList(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getBlockedConversationList

获取屏蔽消息的会话列表

getBlockedConversationList(params, callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话列表
  • 内部字段:
{
    conversationList:[ {
            conversationTitle: 'Ironman',           //字符串类型;会话标题
            conversationType: 'PRIVATE',            //字符串类型;参见 会话类型 枚举
            draft: '',                              //字符串类型;文字消息草稿的内容
            targetId: 'group001',                   //字符串类型;消息目标 Id
            latestMessage: {                        //JSON对象;最后一条消息的内容
             text: 'Hello world!',                //字符串类型;
             extra: ''                            //字符串类型;
            },
            readReceiptInfo:{                       //JSON对象;注:如果此字段无值,则返回空
               hasRespond:true,                     //布尔类型;是否已经发送回执
               isReceiptRequestMessage:true,        //布尔类型;是否需要回执消息
               userIdList:{},                       //JSON对象;发送回执的用户ID列表 (android不支持)
               userIds:[]                           //JSON对象;;发送回执的用户ID和时间戳列表 (ios不支持)
            },
            sentStatus: 'SENT',                     //字符串类型;参见发送出的消息状态
            objectName: 'RC:TxtMsg',                //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
            receivedStatus: 'READ',                 //字符串类型;参见接收到的消息状态
            senderUserId: '55',                     //字符串类型;发送消息的用户 Id
            unreadMessageCount: 10,                 //数字类型;本会话的未读消息数
            receivedTime: 1418968547905,            //数字类型;发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            sentTime: 1418968488063,                //数字类型;收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            isTop: false,                           //布尔类型;置顶状态
            latestMessageId: 608                    //数字类型;本会话最后一条消息 Id,
            mentionedCount: 2                       //数字类型;本会话里自己被@的消息数量(iOS不支持)
            hasUnreadMentioned:true                 //布尔类型;会话中是否存在被@的消息,在清除会话未读数的时候,会将此状态置成false(android不支持)
    } ]
}

示例代码

var rong = api.require('UIRongChat');
rong.getBlockedConversationList(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

removeConversation

从会话列表中移除某一会话,但是不删除会话内的消息

如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息

removeConversation({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    status: true.  //布尔类型;是否移除;true|false
}

示例代码

var rong = api.require('UIRongChat');
rong.removeConversation({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret) {
    api.toast({ msg: ret });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

clearConversations

清空所有会话及会话消息

clearConversations({params}, callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

callback(ret)

ret:

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

示例代码

var rong = api.require('UIRongChat');
rong.clearConversations({
    conversationTypes: ['PRIVATE', 'GROUP']
}, function(ret) {
    api.toast({ msg: ret });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setConversationToTop

设置某一会话为置顶或者取消置顶

setConversationToTop({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

isTop:

  • 类型:布尔
  • 描述:是否置顶

callback(ret)

ret:

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

示例代码

var rong = api.require('UIRongChat');
rong.setConversationToTop({
    conversationType: 'PRIVATE',
    targetId: '9527',
    isTop: true
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret)});
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getConversationNotificationStatus

获取某一会话的通知状态

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

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret, err)

ret:

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

err:

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

状态码说明:

状态码 说明
30003 服务器超时
-10000 未调用 init 方法进行初始化
-10001 未调用 connect 方法进行连接
-10002 输入参数错误

示例代码

var rong = api.require('UIRongChat');
rong.getConversationNotificationStatus({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret, err) {
    if (ret.status)
        api.toast({ msg: JSON.stringify(ret)});
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setConversationNotificationStatus

设置某一会话的通知状态

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

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

isBlocked:

  • 类型:布尔
  • 描述:是否屏蔽消息提醒

callback(ret, err)

ret:

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

err:

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

状态码说明:

状态码 说明
300003 服务器超时
-10000 未调用 init 方法进行初始化
-10001 未调用 connect 方法进行连接
-10002 输入参数错误

示例代码

var rong = api.require('UIRongChat');
rong.setConversationNotificationStatus({
    conversationType: 'PRIVATE',
    targetId: '9527',
    isBlocked: false
}, function(ret, err) {
    if (ret.status)
        api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setRCConversationStatusChangeListener

监听会话状态变化

callback(ret)

ret:

  • 类型:JSON 数组
  • 描述:会话信息
  • ``` js {[ conversationType: '', //字符串类型;会话类型 targetId: '', //字符串类型;会话 ID channelId: '', //字符串类型;所属会话的业务标识 conversationStatusType:, //数字类型;会话状态改变的类型 conversationStatusvalue: //数字类型;如果 conversationStatusType = 1, //conversationStatusvalue = 0 是提醒, //conversationStatusvalue = 1 是免打扰。
    //如果 conversationStatusType = 2, //conversationStatusvalue = 0 是不置顶, //conversationStatusvalue = 1 是置顶。 ],...}

### 示例代码

``` js
var rong = api.require('UIRongChat');
rong. setRCConversationStatusChangeListener(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getOfflineMessageDuration

获取当前用户离线消息时间

getOfflineMessageDuration(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:获取状态
  • 内部字段:
{
    duration: ''  //数字类型;当前用户离线消息时间,单位:天
}

示例代码

var rong = api.require('UIRongChat');
rong.getOfflineMessageDuration(function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setOfflineMessageDuration

设置当前用户离线消息存储时间

setOfflineMessageDuration(params, callback(ret, err))

params

duration:

  • 类型:数字类型
  • 描述:(可选项)用户离线消息存储时间(以天为单位),范围【1~7天】
  • 默认值:1

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:获取状态
  • 内部字段:
{
    status: true  //布尔类型;获取到的状态
    time: ''      //字符串类型;设置成功后的时间(毫秒值)(iOS不支持)
}

err:

  • 类型:JSON 对象
  • 描述:获取状态
  • 内部字段:
{
    errCode: ''  //数字类型;错误码;详情参见:https://www.rongcloud.cn/docs/status_code.html#android_ios_code
}

示例代码

var rong = api.require('UIRongChat');
rong.setOfflineMessageDuration({duration:2}, function(ret, err) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

searchConversations

搜索本地历史消息

searchConversations({params}, callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

objectNames:

keyword:

  • 类型:字符串类型
  • 描述: 搜索的关键字

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话信息
  • 内部字段:
{
    conversationList:[ {
            conversationTitle: 'Ironman',           //字符串类型;会话标题
            conversationType: 'PRIVATE',            //字符串类型;参见 会话类型 枚举
            draft: '',                              //字符串类型;文字消息草稿的内容
            targetId: 'group001',                   //字符串类型;消息目标 Id
            latestMessage: {                        //JSON对象;最后一条消息的内容
             text: 'Hello world!',                //字符串类型;
             extra: ''                            //字符串类型;
            },
            readReceiptInfo:{                       //JSON对象;注:如果此字段无值,则返回空
               hasRespond:true,                     //布尔类型;是否已经发送回执
               isReceiptRequestMessage:true,        //布尔类型;是否需要回执消息
               userIdList:{},                       //JSON对象;发送回执的用户ID列表 (android不支持)
               userIds:[]                           //JSON对象;;发送回执的用户ID和时间戳列表 (ios不支持)
            },
            sentStatus: 'SENT',                     //字符串类型;参见发送出的消息状态
            objectName: 'RC:TxtMsg',                //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
            receivedStatus: 'READ',                 //字符串类型;参见接收到的消息状态
            senderUserId: '55',                     //字符串类型;发送消息的用户 Id
            unreadMessageCount: 10,                 //数字类型;本会话的未读消息数
            receivedTime: 1418968547905,            //数字类型;发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            sentTime: 1418968488063,                //数字类型;收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
            isTop: false,                           //布尔类型;置顶状态
            latestMessageId: 608                    //数字类型;本会话最后一条消息 Id,
            mentionedCount: 2                       //数字类型;本会话里自己被@的消息数量(iOS不支持)
            hasUnreadMentioned:true                 //布尔类型;会话中是否存在被@的消息,在清除会话未读数的时候,会将此状态置成false(android不支持)
    } ]
}

示例代码

var rong = api.require('UIRongChat');
rong.searchConversations({
    conversationTypes: ['PRIVATE'],
    objectNames: ['RC:TxtMsg'],
    keyword:'hello'
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

searchMessages

根据会话,搜索本地历史消息。

searchMessages({params}, callback(ret))

params

conversationType:

  • 类型:字符串类型
  • 描述:指定的会话类型,参见 会话类型

targetId:

  • 类型:字符串类型
  • 描述:指定的会话 id

keyword:

  • 类型:字符串类型
  • 描述: 搜索的关键字

count:

  • 类型:数字类型
  • 描述: 返回的搜索结果数量(iOS平台为返回的最大搜索结果数量), 安卓平台传0时会返回所有搜索到的消息, 非0时,逐页返回
  • 默认值:0

beginTime:

  • 类型:数字类型
  • 描述: 查询记录的起始时间, 传0时从最新消息开始搜索。(单位:毫秒值)
  • 默认值:0

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话信息
  • 内部字段:
{
   messageList: [ {                    //JSON对象;消息体数据格式
       content: {                      //字符串类型;消息内容
           text: 'Hello world!',       //字符串类型;内容
           extra: ''                   //字符串类型;附加文本
       },  
       readReceiptInfo:{               //JSON对象;注:如果此字段无值,则返回空
           hasRespond:true,            //布尔类型;是否已经发送回执
           isReceiptRequestMessage: ,  //布尔类型;是否需要回执消息
           userIdList:[],              //JSON数组类型;发送回执的用户ID列表 (android不支持)
           userIds:[]                  //JSON数组类型;发送回执的用户ID和时间戳列表 (ios不支持)
       },
       extra: '',                      //字符串类型;消息的附加信息,此信息只保存在本地
       conversationType: 'PRIVATE',    //字符串类型;参见 会话类型 枚举
       messageDirection: 'SEND',       //字符串类型;消息方向:SEND 或者 RECEIVE
       targetId: '55',                 //字符串类型;这里对应消息发送者的 userId
       objectName: 'RC:TxtMsg',        //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
       sentStatus: 'SENDING',          //字符串类型;参见 发送出的消息状态
       senderUserId: '55',             //字符串类型;发送者 userId
       messageId: 608,                 //字符串类型;本地消息 Id
       sentTime: 1418971531533,        // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
       receivedTime: 0,                // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
       receivedStatus: 'LISTENED'      //字符串类型;消息状态(android不支持) 取值范围:UNREAD,READ,LISTENED,DOWNLOADED,RETRIEVED,MULTIPLERECEIVE
       isRead:true,                    //布尔类型;获取是否已读取的状态(ios不支持)
       isListened:true,                //布尔类型;获取是否已被收听的状态(ios不支持)
       isDownload:true,                //布尔类型;获取文件是否已经下载的状态(ios不支持)
       isRetrieved:false,              //布尔类型;获取是否已经被收取过(ios不支持)
       isMultipleReceive: false        //布尔类型;获取是否被其他端同时接收(ios不支持)
       messageUId: ''                  //字符串类型;消息UID,如果无则显示空字符串
   }]
}

示例代码

var rong = api.require('UIRongChat');
rong.searchMessages({
    conversationType: 'PRIVATE',
    targetId: '1234',
    keyword:'hello'
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getLatestMessages

获取某一会话的最新消息记录

getLatestMessages({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

count:

  • 类型:数字
  • 描述:要获取的消息数量

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 描述:最新消息记录,按照时间顺序从新到旧排列。
  • 内部字段:
{
    latestMessages: [ {                 //JSON对象;消息体数据格式
       content: {                      //字符串类型;消息内容
           text: 'Hello world!',       //字符串类型;内容
           extra: ''                   //字符串类型;附加文本
           expansionDic:{                      //JSON对象;消息扩展,有些消息无此字段
               'cardType':'orderCard'           //字符串类型;消息类型
               'orderNumber':'订单号'            //字符串类型;有些消息无此字段
               'orderName':'订单名'              //字符串类型;有些消息无此字段
               'orderAmount':'订单价格'          //字符串类型;有些消息无此字段
               'orderState':'订单状态'           //字符串类型;有些消息无此字段
               'bizName':'名片名'                //字符串类型;有些消息无此字段
               'bizGrade':'用户评分'             //字符串类型;有些消息无此字段
               'bizTotality':'服务总数'          //字符串类型;有些消息无此字段
            }
       },  
       readReceiptInfo:{               //JSON对象;注:如果此字段无值,则返回空
           hasRespond:true,            //布尔类型;是否已经发送回执
           isReceiptRequestMessage: ,  //布尔类型;是否需要回执消息
           userIdList:[],              //JSON数组类型;发送回执的用户ID列表 (android不支持)
           userIds:[]                  //JSON数组类型;发送回执的用户ID和时间戳列表 (ios不支持)
       },
       extra: '',                      //字符串类型;消息的附加信息,此信息只保存在本地
       conversationType: 'PRIVATE',    //字符串类型;参见 会话类型 枚举
       messageDirection: 'SEND',       //字符串类型;消息方向:SEND 或者 RECEIVE
       targetId: '55',                 //字符串类型;这里对应消息发送者的 userId
       objectName: 'RC:TxtMsg',        //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
       sentStatus: 'SENDING',          //字符串类型;参见 发送出的消息状态
       senderUserId: '55',             //字符串类型;发送者 userId
       messageId: 608,                 //字符串类型;本地消息 Id
       sentTime: 1418971531533,        // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
       receivedTime: 0,                // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
       receivedStatus: 'LISTENED'      //字符串类型;消息状态(android不支持) 取值范围:UNREAD,READ,LISTENED,DOWNLOADED,RETRIEVED,MULTIPLERECEIVE
       isRead:true,                    //布尔类型;获取是否已读取的状态(ios不支持)
       isListened:true,                //布尔类型;获取是否已被收听的状态(ios不支持)
       isDownload:true,                //布尔类型;获取文件是否已经下载的状态(ios不支持)
       isRetrieved:false,              //布尔类型;获取是否已经被收取过(ios不支持)
       isMultipleReceive: false        //布尔类型;获取是否被其他端同时接收(ios不支持)
       messageUId: ''                  //字符串类型;消息UID,如果无则显示空字符串
   }]
}

示例代码

var rong = api.require('UIRongChat');
rong.getLatestMessages({
    conversationType: 'PRIVATE',
    targetId: '9527',
    count: 20
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getMessageCount

获取某一会话信息数量

getMessageCount({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:会话信息
  • 内部字段:
{
        count:        // 数字类型;当前会话消息数
}

示例代码

var rong = api.require('UIRongChat');  
rong.getMessageCount({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret, err) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getTotalUnreadCount

获取所有未读消息数

getTotalUnreadCount(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    totalUnreadCount: 12    //数字类型;未读消息数
}

示例代码

var rong = api.require('UIRongChat');
rong.getTotalUnreadCount(function(ret) {
    api.toast({ msg: ret });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getUnreadCount

获取来自某用户(某会话)的未读消息数

getUnreadCount({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    unreadCount: 12      //数字类型;未读消息数
}

示例代码

var rong = api.require('UIRongChat');
rong.getUnreadCount({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getUnreadCountByConversationTypes

获取某(些)会话类型的未读消息数

getUnreadCountByConversationTypes({params}, callback(ret))

params

conversationTypes:

  • 类型:数组
  • 描述:(可选项)回话类型组成的数组
  • 默认值:['private','group','discussion','system','customerService','chatroom']
  • 取值范围:
    • private:单聊
    • discussion:讨论组
    • group:群组
    • chatroom:聊天室
    • customerService:客服
    • system:系统会话
    • appService:应用内公众服务会话
    • publicService:跨应用公众服务会话
    • pushService:推送服务会话

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:操作结果
  • 内部字段:
{
    unreadCount: 12      //数字类型;未读消息数
}

示例代码

var rong = api.require('UIRongChat');
rong.getUnreadCountByConversationTypes({
    conversationTypes: ['PRIVATE', 'GROUP']
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

clearMessagesUnreadStatus

清除某一会话的消息未读状态

clearMessagesUnreadStatus({params}, callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等

callback(ret, err)

ret:

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

示例代码

var rong = api.require('UIRongChat');
rong.clearMessagesUnreadStatus({
    conversationType: 'PRIVATE',
    targetId: '9527'
}, function(ret) {
    api.toast({ msg: JSON.stringify(ret) });
})

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

syncConversationReadStatus

同步会话阅读状态

syncConversationReadStatus(params, callback(ret))

params

conversationType:

  • 类型:字符串类型
  • 描述:会话类型
  • 默认值:private

targetId:

  • 类型:字符串类型
  • 描述:targetId

time:

  • 类型:数字类型
  • 描述:已经阅读的最后一条消息的Unix时间戳(毫秒)

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:设置后状态
  • 内部字段:
{
    status: ,                 //布尔类型;状态
    errorCode: ,              //数字;错误码;status为false时有值
}

示例代码

var rong = api.require('UIRongChat');

// 之前调用 init 和 connect 的代码省略
rong.syncConversationReadStatus({conversationType:'private',targetId:"user",time: 1545464616156}, function(ret){
   api.alert({msg:JSON.stringify(ret)});
});

setOnReceiveMessageListener

接收消息监听

setOnReceiveMessageListener(params)

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:设置后状态
  • 内部字段:
{
    message:{                    //JSON对象;消息体数据格式
    content: {                      //字符串类型;消息内容
       text: 'Hello world!',       //字符串类型;内容
       extra: ''                   //字符串类型;附加文本
    },  	
    readReceiptInfo:{               //JSON对象;注:如果此字段无值,则返回空
       hasRespond:true,            //布尔类型;是否已经发送回执
       isReceiptRequestMessage: ,  //布尔类型;是否需要回执消息
       userIdList:[],              //JSON数组类型;发送回执的用户ID列表 (android不支持)
       userIds:[]                  //JSON数组类型;发送回执的用户ID和时间戳列表 (ios不支持)
    },
    extra: '',                      //字符串类型;消息的附加信息,此信息只保存在本地
    conversationType: 'PRIVATE',    //字符串类型;参见 会话类型 枚举
    messageDirection: 'SEND',       //字符串类型;消息方向:SEND 或者 RECEIVE
    targetId: '55',                 //字符串类型;这里对应消息发送者的 userId
    objectName: 'RC:TxtMsg',        //字符串类型;消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
    sentStatus: 'SENDING',          //字符串类型;参见 发送出的消息状态
    senderUserId: '55',             //字符串类型;发送者 userId
    messageId: 608,                 //字符串类型;本地消息 Id
    sentTime: 1418971531533,        // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
    receivedTime: 0,                // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
    receivedStatus: 'LISTENED'      //字符串类型;消息状态(android不支持) 取值范围:UNREAD,READ,LISTENED,DOWNLOADED,RETRIEVED,MULTIPLERECEIVE
    isRead:true,                    //布尔类型;获取是否已读取的状态(ios不支持)
    isListened:true,                //布尔类型;获取是否已被收听的状态(ios不支持)
    isDownload:true,                //布尔类型;获取文件是否已经下载的状态(ios不支持)
    isRetrieved:false,              //布尔类型;获取是否已经被收取过(ios不支持)
    isMultipleReceive: false        //布尔类型;获取是否被其他端同时接收(ios不支持)
    messageUId: ''                  //字符串类型;消息UID,如果无则显示空字符串
  },
    left:0,                  // 数字类型;每个数据包数据逐条上抛后,还剩余的条数
    hasPackage: true,         // 布尔类型;是否在服务端还存在未下发的消息包
    offline: false            // 布尔类型;消息是否是离线信息
}

可用性

iOS 系统、Android 系统

可提供的 1.0.0 及更高版本

startSingleCall

发起单人通话

startSingleCall(params)

params

targetId:

  • 类型:字符串
  • 描述:会话 id

示例代码

var rong = api.require('UIRongChat');
var params = {
        targetId : userId,
};
rong.startSingleCall(params);

可用性

iOS 系统、Android 系统

可提供的 1.0.0 及更高版本

openConversation

会话页面

openConversation(params,callback(ret))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。对方的 userid

title:

  • 类型:字符串
  • 描述:页面标题

coutdownSeconds:

  • 类型:字符串
  • 描述:(可选项)标题上倒计时,单位:秒(s),传 0 时显示已完成,不传不显示倒计时
  • 默认:100

isNeedAlert:

  • 类型:布尔
  • 描述:(可选项)是否需要弹窗提示用户购买咨询服务时间
  • 默认:true
  • 取值范围:
    • true:当 coutdownSeconds 为 0 时,显示已完成且插件每隔 30 秒弹出购买提示框。coutdownSeconds 不为 0 时,倒计时结束和每隔30秒弹出提示框
    • false:当 coutdownSeconds 为 0 时,显示已完成且插件不弹框。coutdownSeconds 不为 0 时,只进行倒计时,倒计时结束显示已完成也不弹框。

online:

  • 类型:字符串
  • 描述:(可选项)在线状态
  • 默认:在线

topBusinessCard:

  • 类型:JSON 对象
  • 描述:(可选项)聊天页面顶部(紧贴导航条下边)的名片信息配置
  • 注意:若不配配置本参数则不显示该名片
  • 内部字段:
{
    grade:'4.5',          //(可选项)字符串类型;用户评分;默认:4.5
    totality:'23457'      //(可选项)字符串类型;服务总数;默认:12345
    portrait:'23457'      //(可选项)字符串类型;照片w路径;默认:默认图标
}

chatQuestionCues:

  • 类型:数组
  • 描述:(可选项)聊天输入框上边的问题提示(字符串类型)组成的数组
  • 注意:若不配配置本参数则不显示输入框上的问题提示,通过接口监听用户点击某个提示问题

videoVoip:

  • 类型:布尔
  • 描述:(可选项)输入框右边加号面板是否显示语音通话按钮
  • 默认:false

showSettingBtn:

  • 类型:布尔
  • 描述:(可选项)会话页面右上角设置按钮是否显示
  • 默认:false

addButtons:

  • 类型:JSON 数组
  • 描述:(可选项)输入框右边加号按钮打开的面板添加按钮
  • 注意:若不配配置本参数则加号面板不添加按钮,通过接口监听用户点击事件
  • 内部字段:
[{
    icon: '',      //字符串类型;按钮图标本地路径; (android icon 大小建议 116 x 116)
    title: '',     //字符串类型;按钮文字;  
    index:         //数字类型;按钮下标,注意从2000开始
}]

animation:

  • 类型:布尔
  • 描述:(可选项)打开聊天页面时是否带动画效果
  • 默认:true

示例代码

var rong = api.require('UIRongChat');
rong.openConversation({
    conversationType: ' private',
    targetId: 'ac002',
    title: '刘德华',
    topBusinessCard:{
        grade:'4.6',
        totality:'13456'
    },
    chatQuestionCues:['你是谁','我是谁','今夜谁是谁','星期六星期天','不用去起得早'],
    videoVoip:true,
    addButtons: [{
        icon:'widget://res/b1.png',
        title:'订单',
        index:2025
    },{
        icon:'widget://res/a1.png',
        title:'名片',
        index:2026
    }]
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

closeConversation

关闭会话页面

closeConversation()

params

animation:

  • 类型:布尔
  • 描述:(可选项)关闭聊天页面时是否带动画效果
  • 默认:true

示例代码

var UIRongCloud = api.require('UIRongChat');
UIRongCloud.closeConversation({
    animation: true
});

可用性

android系统、iOS系统

可提供的 1.0.0 及更高版本

addNeedUserInfoListener

添加需要设置用户信息的时刻的监听

注意:

可在本接口的回调里调用setUserInfo接口设置用户信息。

addNeedAvatarListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:用户信息
  • 内部字段:
{
   userId:     //字符串类型;需要设置头像的用户的id
}

示例代码

var rong = api.require('UIRongChat');
rong.addNeedUserInfoListener(function(ret) {
    var params = {
        userId : ret.userId,
        nickname : '刘德华',
        portraitUri : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
     };
    rong.setUserInfo(params);
});

可用性

iOS系统、android系统

可提供的 1.0.0 及更高版本

setCurrentUserInfo

设置当前用户信息

setCurrentUserInfo(params)

params

userId:

  • 类型:字符串
  • 描述:用户id(connect成功回调返回来的id)

nickname:

  • 类型:字符串
  • 描述:用户昵称

portraitUri:

  • 类型:字符串
  • 描述:头像URI

extra:

  • 类型:字符串
  • 描述:(可选项)附加信息

示例代码

var rong = api.require('UIRongChat');
var params = {
        userId : userId,
        nickname : '白兰地',
        portraitUri : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.setCurrentUserInfo(params);

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

setUserInfo

设置用户信息

注意:在 addNeedUserInfoListener 接口回调内调用本接口设置用户信息。

setUserInfo(params)

params

userId:

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

nickname:

  • 类型:字符串
  • 描述:用户昵称

portraitUri:

  • 类型:字符串
  • 描述:头像URI

extra:

  • 类型:字符串
  • 描述:(可选项)附加信息

示例代码

var rong = api.require('UIRongChat');
var params = {
        userId : userId,
        nickname : '白兰地',
        portraitUri : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.setUserInfo(params);

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

refreshUserInfoCache

刷新本地数据库缓存的用户信息

refreshUserInfoCache(params)

params

userId:

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

nickname:

  • 类型:字符串
  • 描述:用户昵称

portraitUri:

  • 类型:字符串
  • 描述:头像URI

extra:

  • 类型:字符串
  • 描述:(可选项)附加信息

示例代码

var rong = api.require('UIRongChat');
var params = {
        userId : userId,
        nickname : '白兰地',
        portraitUri : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.refreshUserInfoCache(params);

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

clearUserInfoCache

清空SDK中所有的用户信息缓存

clearUserInfoCache()

示例代码

var rong = api.require('UIRongChat');
rong.clearUserInfoCache();

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

getUserInfoCache

获取当前设备缓存的用户信息

getUserInfoCache(callback(ret))

params

userId:

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

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
   nickname:      //字符串类型;用户昵称
   portraitUri:   //字符串类型;头像url
   extra:         //字符串类型;附加信息
}

示例代码

var rong = api.require('UIRongChat');
rong.getUserInfoCache(function(ret) {
    api.alert({msg:JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addPortraitClickListener

添加点击聊天页面内头像的监听

注意:iOS端点击头像跳转到前端开发者自己开发的个人信息页面时,动画效果如果不流畅,可配合 screenshot、addScreenshot、removeScreenshot接口优化。示例代码如下:

var rong = api.require('UIRongChat');
rong.addPortraitClickListener(function(ret) {
    rong.screenshot();
    rong.closeConversation({animation:false});
    rong.addScreenshot();
        api.openWin({
            name: "personalCenter",
            url: "./personalCenter.html"
        });
        api.addEventListener({
             name:'exitFromPersonalCenter'
        },function(ret,err){
            rong.removeScreenshot();
            rong.openConversation({
                conversationType: ' private',
                targetId: 'ac002',
                title: '刘德华',
                animation:false
        });
    })
});

addPortraitClickListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击头像的返回参数
  • 内部字段:
{
   userId:     //字符串类型;点击的头像的用户的id
}

示例代码

var rong = api.require('UIRongChat');
rong.addPortraitClickListener(function(ret) {
    api.alert({msg:'点击的用户是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

didChatViewClosed

聊天页面关闭的监听

didChatViewClosed(callback(ret))

callback()

//只返回事件,没有参数

示例代码

var rong = api.require('UIRongChat');
rong.didChatViewClosedr(function() {
    api.alert({msg:'关闭聊天页面');
});

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

addRightMenueListener

添加右上角按钮菜单的监听

addRightMenueListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击菜单返回所点按钮的索引,从0开始
  • 内部字段:
{
   index:     //数字类型;点击的按钮的索引
}

示例代码

var rong = api.require('UIRongChat');
rong.addRightMenueListener(function(ret) {
    api.alert({msg:'点击的按钮是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

addCoutdownAlertListener

倒计时弹框按钮监听

addCoutdownAlertListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击倒计时弹框按钮
  • 内部字段:
{
   index:     //数字类型;点击的按钮的索引,0:取消;1:立即购买
}

示例代码

var rong = api.require('UIRongChat');
rong.addCoutdownAlertListener(function(ret) {
    api.alert({msg:'点击的按钮是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

addQuestionCuesListener

添加输入框上边提示问题点击的监听

addQuestionCuesListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击提示问题的回调
  • 内部字段:
{
   index:     //数字类型;点击的按钮的索引,从1开始,顺序同 openConversation 接口 chatQuestionCues 参数保持一致
}

示例代码

var rong = api.require('UIRongChat');
rong.addQuestionCuesListener(function(ret) {
    api.alert({msg:'点击的问题是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

addBoardClickListener

添加输入框加号面板按钮点击监听 (注意:Android平台上,该方法需要在openConversation接口之前调用)

addBoardClickListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击加号面板自定义按钮的监听
  • 内部字段:
{
   index:     //数字类型;点击的按钮的索引,同 openConversation 接口 addButtons 参数的 index 一致
}

示例代码

var rong = api.require('UIRongChat');
rong.addBoardClickListener(function(ret) {
    api.alert({msg:'点击的问题是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

sendMessage

发送消息(存文本消息、名片消息、订单消息),同时自动更新聊天页面的UI。

注意:名片消息、订单消息和评价消息本质上还是发送了一个 RC:TxtMsg 类型的纯文本消息。只是名片和订单相关信息被写在消息体的扩展(expansion/extra)里,UI显示的时候从扩展(expansion/extra)取出相关数据展示。

expansion 是融云支持让开发者对消息体进行的扩展。扩展的限制有:1,单次设置不超过20个k-v对;2,key不超过32字符,value不超过64字符;3,每个消息体总共不能超过300个k-v对;

extra 是一个字符串类型参数,最大1024B,可设置为JSON字符串,其内容格式同 expansion

订单消息的 expansion 设置如下:

'title':'请进行订单确认及支付'
'cardType':'orderCard'
'orderNumber':'订单号'
'orderName':'订单名'
'orderAmount':'订单价格'
'orderState':'订单状态'

名片消息的 expansion 设置如下:

'cardType':'businessCard'
'bizName':'名片名'
'bizGrade':'用户评分'
'bizTotality':'服务总数'
'bizId':'名片id'

注意:由于 bizPortrait 大小超过 expansion 的限制,所以 bizTotality 设置在纯文本消息的消息内容text里。

评价消息的 expansion 设置如下:

'cardType':'evaluate'
'orderNumber':'订单号'

server 端设置 expansion 方法参考融云官方文档:https://docs.rongcloud.cn/v4-platform/views/im/noui/guide/group/msgmanage/expansion/web.html?match=imlib-web

sendMessage(params,callback(ret,err))

params

conversationType:

  • 类型:字符串
  • 描述:消息的会话类型,参见 会话类型

targetId:

  • 类型:字符串
  • 描述:目标 Id。对方的 userid

cardType

  • 类型:字符串
  • 描述:(可选项)发送消息的类型
  • 默认:orderCard
  • 取值范围:
    • businessCard:名片消息
    • orderCard:订单消息
    • evaluate:评价消息
    • text:存文本消息

text:

  • 类型:字符串
  • 描述:(可选项)要发送的存文本消息
  • 注意:配合 cardType 参数为空

orderInfo:

  • 类型:JSON 对象
  • 描述:(可选项)订单信息配置
  • 注意:配合 cardType 参数为空
  • 内部字段:
{
    orderName:'借贷纠纷',     //字符串类型;订单名;
    orderNumber:'23457'      //字符串类型;订单名;
    orderAmount:'45元',      //字符串类型;订单假期;
    orderState:'待支付'       //字符串类型;订单状态;
}

bizInfo:

  • 类型:JSON 对象
  • 描述:(可选项)订单信息配置
  • 注意:配合 cardType 参数为空
  • 内部字段:
{
    bizName:'刘律师',     //字符串类型;人名;
    bizGrade:'4.8'       //字符串类型;用户评分;
    bizTotality:'2345',  //字符串类型;服务总数;
    bizPortrait:'',      //字符串类型;生活照图片地址;
    bizId:""             //字符串类型;名片id
}

evaluateInfo:

  • 类型:JSON 对象
  • 描述:(可选项)评价的订单信息配置
  • 注意:配合 cardType 参数为空
  • 内部字段:
{
    orderNumber:'13245679'      //字符串类型;订单号;
}

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 描述:发送消息的回调
  • 内部字段:
{
   status: true,    //布尔类型;是否发生成功
   messageId:       //数字类型;发送消息在本地数据库的ID
}

err:

  • 类型:JSON 对象
  • 描述:发送消息的错误信息
  • 内部字段:
{
   code:       //数字类型;错误码
}

示例代码

var params = {
    conversationType: ' private',
    targetId: 'ac002',
    orderInfo:{
        orderNumber:"1234567891",
        orderName:"这里显示订单名称",
        orderAmount:"888元",
        orderState:"待支付"
    }
};
rong.sendMessage(params,function(ret,err){
   if (ret.status) {
      api.alert({msg:JSON.stringify(ret)});
   } else {
      api.alert({msg:JSON.stringify(err)});
   }
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

didCardMessageCellClick

点击名片和订单的监听

didCardMessageCellClick(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 描述:点击加号面板自定义按钮的监听
  • 内部字段:
{
   messageId:,                  //数字类型;消息在本地数据库的ID
   cardType:''                  //字符串类型;消息类型:businessCard|orderCard | evaluate
   'orderNumber':'订单号'        //字符串类型;有些消息无此字段
   'orderName':'订单名'          //字符串类型;有些消息无此字段
   'orderAmount':'订单价格'      //字符串类型;有些消息无此字段
   'orderState':'订单状态'       //字符串类型;有些消息无此字段
   'orderNumber':'订单号'       //字符串类型;有些消息无此字段
   'bizName':'名片名'            //字符串类型;有些消息无此字段
   'bizGrade':'用户评分'         //字符串类型;有些消息无此字段
   'bizTotality':'服务总数'      //字符串类型;有些消息无此字段
   'bizId':'名片ID'             //字符串类型;有些消息无此字段
}

示例代码

var rong = api.require('UIRongChat');
rong.didCardMessageCellClick(function(ret) {
    api.alert({msg:'点击的消息是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

addMessageCellListener

点击消息的监听

addMessageCellListener(callback(ret))

callback(ret)

ret:

  • 类型:JSON对象
  • 内部字段:
{
   messageId:      //数字类型;消息在本地数据库的ID
}

示例代码

var rong = api.require('UIRongChat');
rong.addMessageCellListener(function(ret) {
    api.alert({msg:'点击的消息是'+JSON.stringify(ret)});
});

可用性

iOS系统,Android系统

updateMessageExpansion

更新订单消息的状态

updateMessageExpansion(params,callback(ret,err))

params

messageId:

  • 类型:数字
  • 描述:消息在本地数据库的ID

orderState:

  • 类型:字符串
  • 描述:已支付

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:发送消息的回调
  • 内部字段:
{
   status: true,    //布尔类型;是否更新成功
}

示例代码

var params = {
    messageId: 101,
    orderState: '已支付'
};
rong.updateMessageExpansion(params,function(ret){
      api.alert({msg:JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

updateMessageExtra

更新订单消息的状态

updateMessageExtra(params,callback(ret))

params

messageId:

  • 类型:数字
  • 描述:消息在本地数据库的ID

orderState:

  • 类型:字符串
  • 描述:已支付

callback(ret)

ret:

  • 类型:JSON 对象
  • 描述:发送消息的回调
  • 内部字段:
{
   status: true,    //布尔类型;是否更新成功
}

示例代码

var params = {
    messageId: 101,
    orderState: '已支付'
};
rong.updateMessageExtra(params,function(ret){
      api.alert({msg:JSON.stringify(ret)});
});

可用性

iOS 系统,Android 系统

可提供的 1.0.0 及更高版本

screenshot

将当前页面截屏,生成一张截图

screenshot( )

示例代码

var rong = api.require('UIRongChat');
rong.screenshot();

可用性

iOS系统

可提供的 1.0.0 及更高版本

addScreenshot

将screenshot接口截屏的图片添加到当前页面

addScreenshot( )

示例代码

var rong = api.require('UIRongChat');
rong.addScreenshot();

可用性

iOS系统

可提供的 1.0.0 及更高版本

removeScreenshot

将addScreenshot接口添加到截屏图片移除

removeScreenshot( )

示例代码

var rong = api.require('UIRongChat');
rong.removeScreenshot();

可用性

iOS系统

可提供的 1.0.0 及更高版本

会话类型

区分不同的会话形式,字符串类型

取值范围

  • private (单聊)
  • discussion(讨论组)
  • group (群组)
  • chatroom(聊天室)
  • customerService (客服)
  • system (系统)

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

会话通知提醒状态

会话通知提醒的状态,开启或者关闭,字符串类型

取值范围

  • DO_NOT_DISTURB (免打扰)
  • NOTIFY (提醒)

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

连接状态

连接状态,字符串类型

取值范围

  • CONNECTED (连接成功)
  • CONNECTING (连接中)
  • DISCONNECTED (断开连接)
  • KICKED (用户账户在其他设备登录,本机会被踢掉线)
  • NETWORK_UNAVAILABLE (网络不可用)
  • SERVER_INVALID (服务器异常或无法连接)
  • TOKEN_INCORRECT (Token 不正确)

可用性

iOS系统,Android系统

可提供的 1.0.0 及更高版本

是否仍需要帮助? 请保持联络!
最后更新于 2024/04/24