UIRongChat
初始化和连接
通知推送
会话
消息、未读消息、历史消息的处理
打开带UI的会话界面及列表
startSingleCall openConversation closeConversation
addNeedUserInfoListener setCurrentUserInfo setUserInfo refreshUserInfoCache clearUserInfoCache getUserInfoCache addPortraitClickListener addRightMenueListener didChatViewClosed addCoutdownAlertListener addQuestionCuesListener addBoardClickListener sendMessage didCardMessageCellClick updateMessageExpansion addMessageCellListener
注意:
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,与 APICloud 平台上的包名是同一个东西,在 APICloud 平台上应用的概览里可以查看。
- 为 App 开启远程推送服务
- 生成并上传 P12 证书
- 融云开发者平台上传 p12 证书
- 生成 provisioning profile 文件
- 将 provisioning profile 文件上传 APICloud 平台
- 在 APICloud 平台云编译出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)
- 用户允许推送
以上步骤都已经实现后,还需要使用您 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 已经被系统冻结杀死(后台暂停状态)时,收到远程推送屏幕顶部(或锁屏页)会弹出提示框。用户点击通知提示框时,则APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'noticeclicked'
}, function(ret) {
if (ret && ret.value) {
var result = ret.value;
}
})
注意:如果此时用户直接点击 App 图标启动 app,则开发者无法获取推送的任何信息。
如果 App 未被系统冻结(前台和刚进后台 2 分钟之内的状态),此时即时通讯相关消息(比如聊天消息)走融云长链接通道,模块自动处理(弹出本地通知)。非即时通讯相关消息(比如从融云后台发一条广告给App所有用户),则在 pushListener 接口中可以捕获该消息,详情参考 pushListener 接口说明。
android 平台推送通知功能详解
android集成小米推送
- 集成小米推送需要依赖APICloud平台的mipush模块
- 在小米开发者平台申请应用,并将appid和appkey配置到init接口中
- 在小米开发者平台申请应用后,需要将APP Secret配置到融云控制台的应用标识中
android集成华为推送
- 集成华为推送需要依赖APICloud平台的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"/>
thirdpartPush 下载地址:
Android 使用注意事项:
使用该模块需要在config.xml中进行如下配置(可参考:https://docs.apicloud.com/Dev-Guide/app-config-manual#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 打包成一个附加自定义模块上传 APICloud 平台。制作方法如下:
下载 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 数组
- 描述:会话信息
{[ conversationType: '', //字符串类型;会话类型 targetId: '', //字符串类型;会话 ID channelId: '', //字符串类型;所属会话的业务标识 conversationStatusType:, //数字类型;会话状态改变的类型 conversationStatusvalue: //数字类型;如果 conversationStatusType = 1, //conversationStatusvalue = 0 是提醒, //conversationStatusvalue = 1 是免打扰。 //如果 conversationStatusType = 2, //conversationStatusvalue = 0 是不置顶, //conversationStatusvalue = 1 是置顶。 ],...}
示例代码
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:
- 类型:数组类型
- 描述:搜索的消息类型。比如:RC:TxtMsg;详情参见:http://docs.rongcloud.cn/android_message.html#_内置内容类消息
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
类型的纯文本消息。只是名片和订单相关信息被写在消息体的 expansionDic 里,UI显示的时候从 expansionDic 取出相关数据展示。expansionDic 是融云支持让开发者对消息体进行的扩展。扩展的限制有:1,单次设置不超过20个k-v对;2,key不超过32字符,value不超过64字符;3,每个消息体总共不能超过300个k-v对;
订单消息的 expansionDic 设置如下:
'cardType':'orderCard'
'orderNumber':'订单号'
'orderName':'订单名'
'orderAmount':'订单价格'
'orderState':'订单状态'
名片消息的 expansionDic 设置如下:
'cardType':'businessCard'
'bizName':'名片名'
'bizGrade':'用户评分'
'bizTotality':'服务总数'
'bizId':'名片id'
注意:由于 bizPortrait 大小超过 expansionDic 的限制,所以 bizTotality 设置在纯文本消息的消息内容text里。
评价消息的 expansionDic 设置如下:
'cardType':'evaluate'
'orderNumber':'订单号'
PC端设置 expansionDic 方法参考融云官方文档: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 及更高版本
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 及更高版本