UIRongCloud
来自于:AC模块工作室提供立即使用
初始化和连接
消息的接收和发送
会话通知状态
会话
消息的读取和删除
未读消息数
消息的状态
文字消息草稿
讨论组
红包页面
打开带UI的会话界面及列表
聊天室
黑名单
消息通知免打扰
监听
概述
注意:本模块不支持融云音视频3.0服务,只支持2.0服务。
注意:本模块从1.4.0开始仅支持RTC4.0及以上服务
本模块封装了一些UIRongCloud模块的一些UI界面
融云 Rong Cloud 是国内首家专业的即时通讯云服务提供商,专注为互联网、移动互联网开发者提供即时通讯基础能力和云端服务。通过融云平台,开发者不必搭建服务端硬件环境,就可以将即时通讯、实时网络能力快速集成至应用中。
UIRongCloud 封装了融云即时通讯能力库 IMKit SDK 的 API,集成了一些UI界面。
注意:
UIRongCloud 是针对对UI和功能需求不那么高的开发者推出的模块。如果你的项目对UI和功能要求很深,请在充分调研本模块是否满足需求后再决定使用。本模块提供的UI接口不满足需求,建议使用 rongCloud2 模块,让前端去实现UI部分。UIRongCloud 模块就是基于 rongCloud2 提供的接口基础上扩展了UI相关的部分接口。请在项目启动前做好调研评估后再决定是否使用本模块。
使用 UIRongCloud 模块之前,请先 注册 融云的开发者帐号并申请创建 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 和推送证书将消息发送到苹果推送服务器,苹果服务器会将该消息推送到客户端。
如何使用远程推送
此过程的 1-4 步骤请参考融云官方的 推送开发指南----如何使用远程推送。其中涉及到的 AppID即为 Bundle Identifie,与 APICloud 平台上的包名是同一个东西,在 APICloud 平台上应用的概览里可以查看。
- 为 App 开启远程推送服务
- 生成并上传 P12 证书
- 融云开发者平台上传 p12 证书
- 生成 provisioning profile 文件
- 将 provisioning profile 文件上传 APICloud 平台
- 在 APICloud 平台云编译出 ipa 安装包并安装(正式版发布到苹果商店,通过苹果商店下载安装)
- 用户允许推送
以上步骤都已经实现后,还需要使用您 App 的用户允许通知,才能收到远程推送。您可以在设备的设置应用中,查看当前App是否允许通知。
如何获取远程推送的内容
远程推送内容的获取
点击通知栏的远程推送时,如果此时 App 已经被系统冻结,则APICloud会将本次推送的内容通过事件监听回调的方式交给开发者。具体使用如下:
api.addEventListener({
name: 'noticeclicked'
}, function(ret) {
if (ret && ret.value) {
var result = ret.value;
}
})
如果 App 未被系统冻结,则您在 setOnReceiveMessageListener 接口中可以捕获该消息,详情参考 setOnReceiveMessageListener 接口说明。
音视频通话推送功能详细请参考 VoIP 推送设置文档(1-6)。其中步骤6参考 APICloud 平台关于后台运行权限的配置。
android集成小米推送
- 集成小米推送需要依赖APICloud平台的mipush模块
- 在小米开发者平台申请应用,并将appid和appkey配置到init接口中
- 在小米开发者平台申请应用后,需要将APP Secret配置到融云控制台的应用标识中
android集成华为推送
- 集成华为推送需要依赖APICloud平台的huaweiPush模块,并在config中配置huaweiPush模块
- 在华为开发者平台申请应用,并将init接口中的huaweiPush参数设置为true
- 在华为开发者平台申请应用后,需要将华为的相关参数配置到融云控制台的应用标识中
注意事项
如果要集成推送服务,需要在config中进行如下配置
<intent-filter>
<action name="android.intent.action.VIEW" />
<category name="android.intent.category.DEFAULT" />
<data host="你的包名" pathPrefix="/push_message" scheme="rong" />
</intent-filter>
android编译环境配置
- 1、android本模块必须使用升级环境编译
- 2、最低android版本要求4.4
android 注意事项
- UIRongCloud的发红包功能必须依赖于aliPayPlus模块
- UIRongCloud从1.0.5版本开始发送位置功能必须依赖于aMap模块
注意
- 从1.1.3版本开始,默认开启多端同步阅读状态功能;目前仅支持单聊、群聊
- 从1.1.6版本开始,android上点击推送过来的消息,开发者可以在appintent事件中接收到该消息的内容,可以从appParam参数的rong_params字段中获取;
关于聊天页面语音转文字功能
使用本模块之前需要先去科大讯飞开放平台注册开发者账号,然后创建app,获取 appID ,接着给创建的 app 添加语音听写服务。最后下载SDK包。
并将 appID 配置到 config.xml
文件。示例如下:
<feature name="UIRongCloud">
<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 目录下的。然后重新压缩为 zip 包文件上传自定义模块,云编译时勾选该模块。
模块接口
init
初始化融云 SDK,调用 connect 连接前务必保证调用此方法
注:android init接口在APP启动之后只允许调用一次
调用前请在 config.xml 中设置内容如下:
<feature name="UIRongCloud">
<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
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:初始化的状态,如果 config.xml 中没有设置 appKey 值,会导致失败,错误信息为参数错误
- 内部字段:
{
status: 'success', // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: -10002 // 错误码
}
错误说明:
错误码 | 说明 |
---|---|
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
rong.init(function(ret, err) {
if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setServerInfo
设置私有部署的导航服务器和媒体服务器地址。 此方法要在 init() 前使用 可以支持设置 http://cn.xxx.com 或者 cn.xxx.com 如果设置成 cn.xxx.com,sdk 会组装成并仅支持 http:// 协议格式。 支持传入多个导航, 多个导航地址之间须以分号 ; 分隔
setServerInfo({params})
params
naviServer:
- 类型:字符串
- 默认值:无
- 描述:私有部署的导航服务器地址。
fileServer:
- 类型:字符串
- 默认值:无
- 描述:私有部署的媒体服务器地址,即文件和图片的上传地址。使用私有云时必须填写。
示例代码
var rong = api.require('UIRongCloud');
rong.setServerInfo({
naviServer:'',
fileServer:''
});
可用性
Android系统,iOS系统
可提供的 1.2.1 及更高版本
connect
连接融云 IM 服务器,进行后续各种方法操作前务必要先调用此方法
connect({params}, callback(ret, err))
params
token:
- 类型:字符串
- 默认值:无
- 描述:从服务端获取的用户身份令牌(Token)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的登录成功或者失败的状态
- 内部字段:
{
status: 'success', // 状态码:success / error
result:
{
userId: '9527' // 当前登录的用户 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('UIRongCloud');
rong.init(function(ret, err) {
if (ret.status == 'error')
api.toast({ msg: err.code });
});
rong.connect({
token: 'ThptTWyiPPPvZHvuSiuri82yq+hfEluLjZ78E1qo4hEVSFQNpqdoPu406urMWKN4Z3/olWR+v9JVLAwfOQoLrA=='},function(ret, err) {
if (ret.status == 'success') api.toast({ msg: ret.result.userId });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
disconnect
断开连接
disconnect({params}, callback(ret, err))
params
isReceivePush:
- 类型:布尔
- 默认值:true
- 描述:断开后是否接收 Push
callback(ret)
ret:
- 类型:JSON 对象
- 描述:返回的断开连接成功或者失败的状态
- 内部字段:
{
status: 'success' // 状态码:success
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.disconnect({
isReceivePush: true
}, function(ret, err) {
if ('success' == ret.status) {
api.toast({ msg: '断开连接成功!' });
}
}); // 断开,且不再接收 Push
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
logout
注销登录(不再接收 Push 消息)
logout(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的注销登录成功或者失败的状态
- 内部字段:
{
status: 'success' // 状态码:success
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.logout(function(ret, err) {
if (ret.status == 'error')
api.toast({ msg: err.code });
}); // 断开,且不再接收 Push
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setConnectionStatusListener
设置连接状态变化的监听器,请在调用 init 方法之后,调用 connect 方法之前设置
setConnectionStatusListener(callback(ret, err))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:连接服务器的回调返回值,参见 连接状态
- 内部字段:
{
result:
{
connectionStatus: 'CONNECTED' // 连接状态
}
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 的代码省略
rong.setConnectionStatusListener(function(ret, err) {
api.toast({ msg: ret.result.connectionStatus });
});
// 之后调用 connect 的代码省略
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getConnectionStatus
获取连接状态
getConnectionStatus(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:连接状态枚举,参见 连接状态;
- 内部字段:
{
status: 'success',
result:
{
connectionStatus: 'CONNECTED' // 连接状态
}
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getConnectionStatus(function(ret, err) {
api.toast({ msg: ret.result.connectionStatus });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getCurrentUserId
获取当前连接用户的信息
getCurrentUserId(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: 'apple' // 当前连接用户
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getCurrentUserId(function(ret, err) {
api.toast({ msg: ret.result });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendTextMessage
发送文字消息
sendTextMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
text:
- 类型:字符串
- 默认值:无
- 描述:消息的文字内容
extra:
- 类型:字符串
- 默认值:无
- 描述:消息的附加信息
mentionedInfo:
- 类型:JSON类型
- 默认值:无 (可选)
- 描述:@功能,当conversationType为GROUP或DISCUSSION有效;(ios不支持DISCUSSION);注:@ 消息推送会越过所有免打扰逻辑,给用户推送 Push 通知。
- 内部字段:
type:"all" //(可选项) 字符串类型;@消息类型,默认值:all;取值范围:(all,part);all为@群组里所有人;part为@部分人,
userIdList:['123'] //字符串类型的数组;用户id;当type为part时,需要填写此字段;
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / success / error
result:
{
message:
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
extra: '',
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
成功:
{
status: 'success', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendTextMessage({
conversationType: 'PRIVATE',
targetId: '9527',
text: 'Hello world.',
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendVoiceMessage
发送语音消息
sendVoiceMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
voicePath:
- 类型:字符串
- 默认值:无
- 描述:语音文件的路径,支持 fs://,如:fs:///voice/123.amr。文件要求为 AMR 格式
duration:
- 类型:数字
- 默认值:无
- 描述:语音消息的时长,单位为秒
extra:
- 类型:字符串
- 默认值:无
- 描述:消息的附加信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / success / error
result:
{
message:
{
content: {
voicePath: '/xxx/xxx/voice.amr',
duration: 5,
extra: ''
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:VcMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
成功:
{
status: 'success', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendVoiceMessage({
conversationType: 'PRIVATE',
targetId: '9527',
voicePath: 'fs:///xxx/xxx/voice.amr',
duration: 5,
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendImageMessage
发送图片消息
sendImageMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
imagePath:
- 类型:字符串
- 默认值:无
- 描述:图片的路径,支持 fs://,如:fs:///image/123.jpg
extra:
- 类型:字符串
- 默认值:无
- 描述:消息的附加信息
isFull:
- 类型:布尔类型
- 描述:是否发送原图
- 默认值:false
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / progress / success / error
result:
{
message:
{
content: {
imageUrl: '/xxx/xxx/image.jpg',
thumbPath: '/xxx/xxx/thumb.jpg',
extra: ''
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:ImgMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
发送中:
{
status: 'progress', // 状态码:prepare / progress / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
},
progress: 66 // 发送进度
}
}
成功:
{
status: 'success', // 状态码:prepare / progress / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / progress / success / error
result:
{
message:
{
sentStatus: 'FAILED', // 发送状态:SENDING, SENT 或 FAILED
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendImageMessage({
conversationType: 'PRIVATE',
targetId: '9527',
imagePath: 'fs:///xxx/xxx/picture.jpg',
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'progress')
api.toast({ msg: ret.result.progress });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendRichContentMessage
发送图文消息
sendRichContentMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
title:
- 类型:字符串
- 默认值:无
- 描述:消息的标题
description:
- 类型:字符串
- 默认值:无
- 描述:消息的内容描述
imageUrl:
- 类型:字符串
- 默认值:无
- 描述:消息图片的网络地址
url:
- 类型:字符串
- 默认值:无
- 描述:消息的页面链接
extra:
- 类型:字符串
- 默认值:无
- 描述:消息的附加信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / success / error
result:
{
message:
{
content: {
title: 'Big News',
description: 'I am Ironman.',
imageUrl: 'http://p1.cdn.com/fds78ruhi.jpg',
extra: '',
url: ''
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:ImgTextMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
成功:
{
status: 'success', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / success / error
result:
{
message:
{
sentStatus: 'FAILED', // 发送状态:SENDING, SENT 或 FAILED
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendRichContentMessage({
conversationType: 'PRIVATE',
targetId: '9527',
title: 'Big News',
description: 'I am Ironman.'
imageUrl: 'http://ironman.com/xxx/xxx/picture.jpg',
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendLocationMessage
发送位置消息
sendLocationMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
latitude:
- 类型:数字
- 默认值:无
- 描述:消息的文字内容
longitude:
- 类型:数字
- 默认值:无
- 描述:消息的文字内容
poi:
- 类型:字符串
- 默认值:无
- 描述:消息的文字内容
imagePath:
- 类型:字符串
- 默认值:无
- 描述:地图缩率图的路径,支持 fs://,如:fs:///location_thumb/123.jpg
extra:
- 类型:字符串
- 默认值:无
- 描述:消息的附加信息
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / progress / success / error
result:
{
message:
{
content: {
latitude: 39.9139
longitude: 116.3917
poi: '北京市朝阳区北苑路北辰泰岳大厦',
imagePath: '/xxx/xxx/location.jpg'
extra: ''
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:LBSMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
发送中:
{
status: 'progress', // 状态码:prepare / progress / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
},
progress: 66 // 发送进度
}
}
成功:
{
status: 'success', // 状态码:prepare / progress / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / progress / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendLocationMessage({
conversationType: 'PRIVATE',
targetId: '9527',
latitude: 39.9139,
longitude: 116.3917,
poi: '北京市朝阳区北苑路北辰泰岳大厦',
imagePath: 'fs:///xxx/xxx/location.jpg',
extra: ''
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'progress')
api.toast({ msg: ret.result.progress });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendCommandNotificationMessage
发送命令消息,可以用来实现任何自定义消息的发送
sendCommandNotificationMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
name:
- 类型:字符串
- 默认值:无
- 描述:命令的名称
data:
- 类型:字符串
- 默认值:无
- 描述:命令的数据
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
- 内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / success / error
result:
{
message:
{
content: {
name: 'AddFriend',
data: '{\"inviteUserId\":123}'
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
成功:
{
status: 'success', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
失败:
{
status: 'error', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendCommandNotificationMessage({
conversationType: 'PRIVATE',
targetId: '9527',
name: 'AddFriend',
data: '{\"inviteUserId\":123}'
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendCommandMessage
发送命令消息,您需要这种类型的消息时可以直接使用,不需要再自定义。此消息不保存、不计数。
sendCommandMessage({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 默认值:无
- 描述:消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
targetId:
- 类型:字符串
- 默认值:无
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
name:
- 类型:字符串
- 默认值:无
- 描述:命令的名称
data:
- 类型:字符串
- 默认值:无
- 描述:命令的数据
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:返回的消息内容。发送准备时,提供所有消息信息;之后,result 中将只返回 message.messageId 等必要相关的内容
内部字段:
发送准备:
{
status: 'prepare', // 状态码:prepare / success / error
result:
{
message:
{
content: {
name: 'AddFriend',
data: '{\"inviteUserId\":123}'
}, // 消息内容
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '16', // 接收者 Id
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 608, // 本地消息 Id
sentTime: 1418971531533, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 0 // 收到消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
}
}
}
- 成功:
{
status: 'success', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
- 失败:
{
status: 'error', // 状态码:prepare / success / error
result:
{
message:
{
messageId: 608 // 本地消息 Id
}
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30014 | 发送处理失败 |
30003 | 服务器超时 |
31009 | 用户被屏蔽 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
405 | 用户在黑名单中 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendCommandMessage({
conversationType: 'PRIVATE',
targetId: '9527',
name: 'AddFriend',
data: '{\"inviteUserId\":123}'
}, function(ret, err) {
if (ret.status == 'prepare')
api.toast({ msg: JSON.stringify(ret.result.message) });
else if (ret.status == 'success')
api.toast({ msg: ret.result.message.messageId });
else if (ret.status == 'error')
api.toast({ msg: err.code });
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setOnReceiveMessageListener
设置接收消息的监听器,请在调用 init 方法之后,调用 connect 方法之前设置
所有接收到的消息、通知、状态都经由此处设置的监听器处理。包括私聊消息、讨论组消息、群组消息、聊天室消息以及各种其他消息、通知、状态等
setOnReceiveMessageListener(callback(ret, err))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:接收到的消息内容和剩余消息条数
- 内部字段:
{
result: {
message:{
content: { //JSON对象;消息内容
text: 'Hello world!',
extra: ''
},
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '55', // 这里对应消息发送者的 userId
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
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不支持)
},
left: 0 // 剩余未拉取的消息数目
},
isPushMsg: false //布尔类型;是否是推送消息,本参数仅在iOS平台有效。
//在 iOS 平台上APP收到推送时,有以下几种情况:
//1,应用在前台激活状态,开发者可同本接口获取推送消息,此时 result数据格式如下文说明
//2,应用在后台但未被杀死,此时系统弹出推送提示。若用户点击推送提示,开发者可同本接口获取推送消息,此时 result数据格式如下文说明。若用户不点击推送提示,直接点击app进入应用,则获取
//3,应用未激活,此时收到推送后,系统会弹出提示框,用户点击该提示框,开发者可通过api对象下noticeclicked事件监听到推送消息。
//注意:如果用户不点击推送提示框,而是直接点击app图标进入应用,开发者是收不到推送消息的。
}
档 isPushMsg 为 true 时 result 数据的格式说明:
{
_j_msgid:20266200178825380, //数字类型;
infoid:'0', //字符串类型;
_j_business:1, //数字类型;
id:62358', //字符串类型;
aps:{ //JSON对象
sound:'default', //字符串类型;
badge:1, //数字类型;
alert:'你有新的消息' //字符串类型;
},
_j_uid:12108421449, //数字类型;
type:‘8’, //字符串类型;
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 的代码省略
rong.setOnReceiveMessageListener(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result.message) });
api.toast({ msg: ret.result.message.left });
})
// 之后调用 connect 的代码省略
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getOfflineMessageDuration
获取当前用户离线消息时间
getOfflineMessageDuration(callback(ret, err))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:获取状态
- 内部字段:
status: true //布尔类型;获取到的状态
duration: '' //字符串类型;当前用户离线消息时间,单位:天
err:
- 类型:JSON 对象
- 描述:获取状态
- 内部字段:
errCode: '' //数字类型;错误码;详情参见:https://www.rongcloud.cn/docs/status_code.html#android_ios_code
示例代码
var rong = api.require('UIRongCloud');
rong.getOfflineMessageDuration(function(ret, err) {
api.toast({ msg: JSON.stringify(ret) });
})
可用性
iOS系统,Android系统
可提供的 1.1.1 及更高版本
setOfflineMessageDuration
设置当前用户离线消息存储时间
setOfflineMessageDuration(params, callback(ret, err))
params
duration:
- 类型:数字类型
- 描述:(可选项)用户离线消息存储时间(以天为单位),范围【1~7天】
- 默认值:1
callback(ret)
ret:
- 类型:JSON 对象
- 描述:获取状态
- 内部字段:
status: true //布尔类型;获取到的状态
err:
- 类型:JSON 对象
- 描述:获取状态
- 内部字段:
errCode: '' //数字类型;错误码;详情参见:https://www.rongcloud.cn/docs/status_code.html#android_ios_code;【注:Android如果错误码返回26002,请联系融云官方,在后台进行配置。】
示例代码
var rong = api.require('UIRongCloud');
rong.setOfflineMessageDuration({duration:2}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret) });
})
可用性
iOS系统,Android系统
可提供的 1.1.1 及更高版本
addReadReceiptReceived
设置消息回执监听
addReadReceiptReceived(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:消息回执
- 内部字段:
{
status: 'success',
result:
{
conversationType: 'PRIVATE', // 参见 会话类型 枚举
targetId: 'group001', // 消息目标 Id
senderUserId: '55', // 发送消息的用户 Id(android 不支持)
receivedTime: 1418971531533 // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数(android 不支持)
}
}
示例代码
var rong = api.require('UIRongCloud');
rong.addReadReceiptReceived(function(ret) {
api.toast({ msg: JSON.stringify(ret) });
})
可用性
iOS系统,Android系统
可提供的 1.1.5 及更高版本
configNotificationHint
配置推送相关参数
configNotificationHint({params})
params
alertTitle:
- 类型:字符串
- 描述:(可选项)进入后台两分钟内收到通知的显示内容
- 默认值:您收到了一条新消息
- 注意:showDetail 为 true 时忽略本参数
showDetail:
- 类型:布尔
- 描述:(可选项)推送提示是否显示详情,注:设置昵称的方式为:在发送消息接口的extra字段中填写昵称信息,格式为extra:'{"userInfo":{"nickName":"用户昵称"}}',注意extra为字符串类型,若extra不传,则读取本地已缓存的用户昵称,如果本地也没缓存则不显示昵称
- 默认值:false
示例代码
var rong = api.require('UIRongCloud');
rong.configNotificationHint({
alertTitle:,
showDetail:true
});
可用性
iOS系统、android系统
可提供的 1.1.0 及更高版本
setMessageAttachedUserInfo
设置是否将用户信息携带到消息中
setMessageAttachedUserInfo({params})
params
attached:
- 类型:布尔
- 描述:是否将用户信息携带到消息中
- 默认值:false
示例代码
var rong = api.require('UIRongCloud');
rong.setMessageAttachedUserInfo({
attached:true
});
可用性
iOS系统、android系统
可提供的 1.1.0 及更高版本
getConversationList
获取会话列表
会话列表按照时间从前往后排列,如果有置顶会话,则置顶会话在前
注: 此接口获取当前用户本地会话列表的默认方法,该方法返回的是以下类型的会话列表:私聊,群组,讨论组,系统会话;当更换设备或者清除缓存后,拉取到的是暂存在融云服务器中该账号当天收发过消息的会话列表。
getConversationList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话列表
- 内部字段:
{
status: 'success',
result: [
{
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
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
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getConversationList(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getConversationListByCount
分页获取会话列表
会话列表按照时间从前往后排列,如果有置顶会话,则置顶会话在前
getConversationListByCount({params},callback(ret))
params
typeList:
- 类型:数组
- 描述:(可选项)回话类型组成的数组
- 默认值:['private','group','discussion','system']
- 取值范围:
- private:单聊
- discussion:讨论组
- group:群组
- chatroom:聊天室
- customerService:客服
- system:系统会话
- appService:应用内公众服务会话
- publicService:跨应用公众服务会话
- pushService:推送服务会话
count:
- 类型:数字
- 描述:(可选项)获取的数量
- 默认:10
startTime:
- 类型:数字
- 描述:(可选项)会话的时间戳(获取这个时间戳之前的会话列表,0表示从最新开始获取)
- 默认:0
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话列表
- 内部字段:
{
status: 'success',
result: [
{
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
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
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getConversationListByCount(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getConversation
获取某一会话信息
getConversation({params}, callback(ret))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话信息
- 内部字段:
{
status: 'success',
result: {
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
recievedStatus: 0, // 参见 接收到的消息状态
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
}
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getConversation({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
clearConversations
清空所有会话及会话消息
clearConversations({params}, callback(ret))
params
conversationTypes:
- 类型:字符串数组
- 默认值:无
- 描述:消息的会话类型,参见 会话类型
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.clearConversations({
conversationTypes: ['PRIVATE', 'GROUP']
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
removeConversation
从会话列表中移除某一会话,但是不删除会话内的消息
如果此会话中有新的消息,该会话将重新在会话列表中显示,并显示最近的历史消息
removeConversation({params}, callback(ret))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.removeConversation({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getTopConversationList
获取置顶会话列表
getTopConversationList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话列表
- 内部字段:
{
status: 'success',
result: [
{
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
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
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getTopConversationList(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getMessageCount
获取某一会话信息数量
getMessageCount({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:会话信息
- 内部字段:
{
status: 'success',
result: {
count: // 数字类型;当前会话消息数
}
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getMessageCount({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统
可提供的 1.0.4 及更高版本
getBlockedConversationList
获取屏蔽消息的会话列表
getBlockedConversationList(params, callback(ret))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见会话类型(ios不支持)
- 默认值:PRIVATE
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话列表
- 内部字段:
{
status: 'success',
result: [
{
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
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
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getBlockedConversationList(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
getConversationNotificationStatus
获取某一会话的通知状态
getConversationNotificationStatus({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: {
code: 0 // 状态码,0:免打扰 / 1:提醒
notificationStatus: 'DO_NOT_DISTURB' // 参见 会话通知提醒状态 枚举
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getConversationNotificationStatus({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: ret.result.code });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setConversationNotificationStatus
设置某一会话的通知状态
setConversationNotificationStatus({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
notificationStatus:
- 类型:字符串
- 描述:会话通知提醒状态,参见 会话通知提醒状态
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: {
code: 0 // 状态码,0:免打扰 / 1:提醒
notificationStatus: "DO_NOT_DISTURB" // 参见 会话通知提醒状态 枚举
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
300003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setConversationNotificationStatus({
conversationType: 'PRIVATE',
targetId: '9527',
notificationStatus: 'DO_NOT_DISTURB'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: ret.result.code });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
disableLocalNotification
设置本地消息不提示
disableLocalNotification(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.disableLocalNotification(function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
enableLocalNotification
设置本地消息提示
enableLocalNotification(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.enableLocalNotification(function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getLatestMessages
获取某一会话的最新消息记录
getLatestMessages({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
count:
- 类型:数字
- 描述:要获取的消息数量
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:最新消息记录,按照时间顺序从新到旧排列。
- 内部字段:
{
status: 'success',
result: [
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
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不支持)
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getLatestMessages({
conversationType: 'PRIVATE',
targetId: '9527',
count: 20
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getHistoryMessages
获取某一会话的历史消息记录
getHistoryMessages({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
oldestMessageId:
- 类型:数字
- 描述:最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为: -1
count:
- 类型:数字
- 描述:要获取的消息数量
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:最新消息记录,按照时间顺序从新到旧排列。
- 内部字段:
{
status: 'success',
result: [
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
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不支持)
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getHistoryMessages({
conversationType: 'PRIVATE',
targetId: '9527',
oldestMessageId: 688,
count: 20
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getHistoryMessagesByObjectName
按照消息类型获取历史消息记录
getHistoryMessagesByObjectName({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
objectName:
- 类型:字符串
- 描述:消息类型标识
oldestMessageId:
- 类型:数字
- 描述:最后一条消息的 Id,获取此消息之前的 count 条消息,没有消息第一次调用应设置为: -1
count:
- 类型:数字
- 描述:要获取的消息数量
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:最新消息记录,按照时间顺序从新到旧排列。
- 内部字段:
{
status: 'success',
result: [
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
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不支持)
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getHistoryMessagesByObjectName({
conversationType: 'PRIVATE',
targetId: '9527',
objectName: 'RC:TxtMsg',
oldestMessageId: 688,
count: 20
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getRemoteHistoryMessages
获取历史消息记录(特别说明:调用此方法需要开启历史消息漫游;当用户因换设备或重装app导致本地本地存储丢失的情况,可用此方法获取记录;此方法返回值中messageId均为0,融云服务器不会保存此值)
此方法从服务器端获取之前的历史消息,但是必须先开通历史消息云存储功能。 例如,本地会话中有10条消息,您想拉取更多保存在服务器的消息的话,recordTime应传入最早的消息的发送时间戳,count传入1~20之间的数值。
getRemoteHistoryMessages({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型;不支持传入 RCConversationType.CHATROOM。
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
dateTime :
- 类型:日期
- 描述:从该时间点开始获取消息。即:消息中的 sentTime;第一次可传 0,再次取值此参数可传入上一次获取的最后一条记录的sentTime值。
count:
- 类型:数字
- 描述:要获取的消息数量(1-20条)
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:最新消息记录,按照时间顺序从新到旧排列。
- 内部字段:
{
status: 'success',
result: [
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
extra: '', // 消息的附加信息,此信息只保存在本地
conversationType: 'PRIVATE', // 参见 会话类型 枚举
messageDirection: 'SEND', // 消息方向:SEND 或者 RECEIVE
targetId: '55', // 这里对应消息发送者的 userId
objectName: 'RC:TxtMsg', // 消息类型,参见 http://docs.rongcloud.cn/android_message.html#_内置内容类消息
sentStatus: 'SENDING', // 发送状态:SENDING, SENT 或 FAILED
senderUserId: '55', // 发送者 userId
messageId: 0, // 融云服务器不保存此值,返回值均为0
sentTime: 1444446587902, // 发送消息的时间戳,从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的毫秒数
receivedTime: 1444446598989, // 收到消息的时间戳,从 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不支持)
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getRemoteHistoryMessages({
conversationType: 'PRIVATE',
targetId: '9527',
dateTime: 1418971531533,
count: 20
}, function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
deleteMessages
删除指定的一条或者一组消息
deleteMessages({params}, callback(ret, err))
params
messageIds:
- 类型:数字数组
- 描述:要删除的消息 Id 数组
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.deleteMessages({
messageIds: [688, 689]
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
clearMessages
清空某一会话的所有聊天消息记录
clearMessages({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.clearMessages({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
searchConversations
搜索本地历史消息
searchConversations({params}, callback(ret))
params
conversationTypes:
- 类型:数组类型
- 描述:搜索的会话类型,参见 会话类型
objectNames:
- 类型:数组类型
- 描述:搜索的消息类型。比如:RC:TxtMsg;详情参见:http://docs.rongcloud.cn/android_message.html#_内置内容类消息
keyword:
- 类型:字符串类型
- 描述: 搜索的关键字
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话信息
- 内部字段:
{
status: 'success',
result: [
{
conversationTitle: 'Ironman', // 会话标题
conversationType: 'PRIVATE', // 参见 会话类型 枚举
draft: '', // 文字消息草稿的内容
targetId: 'group001', // 消息目标 Id
latestMessage: {
text: 'Hello world!',
extra: ''
}, // 最后一条消息的内容
sentStatus: 'SENT', // 参见 发送出的消息状态
*notificationStatus: 'NOTIFY', // 会话通知状态,2.0.0将不再提供此字段,可通过 getConversationNotificationStatus 获取
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
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.searchConversations({
conversationTypes: ['PRIVATE'],
objectNames: ['RC:TxtMsg'],
keyword:'hello'
}, function(ret) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.9 及更高版本
searchMessages
根据会话,搜索本地历史消息。
searchMessages({params}, callback(ret))
params
conversationType:
- 类型:字符串类型
- 描述:指定的会话类型,参见 会话类型
targetId:
- 类型:字符串类型
- 描述:指定的会话 id
keyword:
- 类型:字符串类型
- 描述: 搜索的关键字
count:
- 类型:数字类型
- 描述: 返回的搜索结果数量(iOS平台为返回的最大搜索结果数量), 安卓平台传0时会返回所有搜索到的消息, 非0时,逐页返回
- 默认值:0
beginTime:
- 类型:数字类型
- 描述: 查询记录的起始时间, 传0时从最新消息开始搜索。(单位:毫秒值)
- 默认值:0
callback(ret)
ret:
- 类型:JSON 对象
- 描述:会话信息
- 内部字段:
{
status: 'success',
result: [
{
content: {
text: 'Hello world!',
extra: ''
}, // 消息内容
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不支持)
}
]
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.searchMessages({
conversationType: 'PRIVATE',
targetId: '1234',
keyword:'hello'
}, function(ret) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.9 及更高版本
cleanHistoryMessages
清空指定时间戳之前的历史消息 Notes:此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。
clearMessages({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
recordTime:
- 类型:数字类型
- 描述:清除消息截止时间戳,【0 ~ 当前时间的 Unix 时间戳】。
cleanRemote
- 类型:布尔类型
- 描述:是否删除服务器端消息
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.cleanHistoryMessages({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getTotalUnreadCount
获取所有未读消息数
getTotalUnreadCount(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success',
result: 12 // 未读消息数
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getTotalUnreadCount(function(ret, err) {
api.toast({ msg: ret.result });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getUnreadCount
获取来自某用户(某会话)的未读消息数
getUnreadCount({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success',
result: 12 // 未读消息数
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getUnreadCount({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.result });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getUnreadCountByConversationTypes
获取某(些)会话类型的未读消息数
getUnreadCountByConversationTypes({params}, callback(ret, err))
params
conversationTypes:
- 类型:字符串数组
- 描述:消息的会话类型,参见 会话类型
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success',
result: 12 // 未读消息数
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getUnreadCountByConversationTypes({
conversationTypes: ['PRIVATE', 'GROUP']
}, function(ret, err) {
api.toast({ msg: ret.result });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setMessageReceivedStatus
设置接收到的消息状态
setMessageReceivedStatus({params}, callback(ret, err))
params
messageId:
- 类型:数字
- 描述:消息 Id
receivedStatus:
- 类型:字符串
- 描述:设置接收到的消息状态,参见 接收到的消息状态
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setMessageReceivedStatus({
messageId: '688',
receivedStatus: 'READ'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
clearMessagesUnreadStatus
清除某一会话的消息未读状态
clearMessagesUnreadStatus({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.clearMessagesUnreadStatus({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setMessageExtra
设置消息的附加信息,此信息只保存在本地
setMessageExtra({params}, callback(ret, err))
params
messageId:
- 类型:数字
- 描述:消息 Id
value:
- 类型:字符串
- 描述:消息附加信息,最大 1024 字节
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setMessageExtra({
messageId: '688',
value: 'extra info'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setMessageSentStatus
设置消息发送状态
setMessageSentStatus({params}, callback(ret, err))
params
messageId:
- 类型:数字
- 描述:消息 Id
sentStatus :
- 类型:字符串
- 描述:发送出的消息的状态枚举,参见 发送状态;
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setMessageSentStatus({
messageId: 8,
sentStatus: 'READ'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
sendTypingStatus
向会话中发送正在输入的状态。
注意:在 6 秒之内,如果同一个用户在同一个会话中多次调用此接口发送正在输入的状态,为保证产品体验和网络优化,将只有最开始的一次生效。目前本接口仅支持单聊。
sendTypingStatus({params})
params
conversationType:
- 类型:字符串
- 描述:(可选项)消息的会话类型,通过改变消息会话类型,可以发送单聊消息、讨论组消息、群聊消息、聊天室消息等,参见 会话类型
- 默认值:PRIVATE
targetId:
- 类型:字符串
- 描述:消息的接收方 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
objectName:
- 类型:字符串
- 描述:正在输入的消息的类型名,如文本消息,应该传类型名"RC:TxtMsg"。会话中的其他用户输入状态回执中会收到此消息类型,可以通过此消息类型,自定义不同的输入状态提示(如:正在输入、正在讲话、正在拍摄等)。
- 取值范围:
- RC:TxtMsg 文本消息
- RC:VcMsg 语音类型
- RC:ImgMsg 图片类型
- 默认值:无
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.sendTypingStatus({
conversationType: 'PRIVATE',
targetId: '9527',
objectName: 'RC:TxtMsg'
});
可用性
iOS系统,Android系统
可提供的 1.0.6 及更高版本
addTypingStatusListener
监听对方输入状态
注:android目前只能监听到发送文本消息的监听
addTypingStatusListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:正在输入的信息
- 内部字段:
{
conversationType: , //字符串类型;会话类型
targetId: , //字符串类型;会话目标ID
userTypingStatusList:[] //数字类型;正在输入的用户列表
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.addTypingStatusListener(function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.6 及更高版本
getTextMessageDraft
获取某一会话的文字消息草稿
getTextMessageDraft({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success',
result: 'Hello w' // 草稿的文字内容
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getTextMessageDraft({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.result });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
saveTextMessageDraft
保存某一会话的文字消息草稿
saveTextMessageDraft({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
content:
- 类型:字符串
- 描述:草稿的文字内容
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.saveTextMessageDraft({
conversationType: 'PRIVATE',
targetId: '9527',
content: 'Hello w'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
clearTextMessageDraft
清除某一会话的文字消息草稿
clearTextMessageDraft({params}, callback(ret, err))
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.clearTextMessageDraft({
conversationType: 'PRIVATE',
targetId: '9527'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
createDiscussion
创建讨论组
createDiscussion({params}, callback(ret, err))
params
name:
- 类型:字符串
- 描述:讨论组名称,如:当前所有成员的名字的组合。
userIdList:
- 类型:字符串数组
- 描述:讨论组成员 Id 列表
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: {
discussionId: "1b9f7abe-a5ae-463d-8ff8-d96deaf40b59" // 创建成功的讨论组 Id
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.createDiscussion({
name: 'Ironman, Batman',
userIdList: ['1234', '4321']
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: ret.result.discussionId });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getDiscussion
获取讨论组信息和设置
getDiscussion({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 描述:讨论组 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: {
creatorId: '55', // 讨论组创建者 Id
id: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59', //讨论组 Id
name: 'Ironman, Batman', // 讨论组名称
memberIdList: [ '1234', '4321' ], // 成员 Id 列表
inviteStatus: 'OPENED' // 是否公开好友邀请:OPENED / CLOSED,参见 讨论组邀请状态
}
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getDiscussion({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.result.discussion) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setDiscussionName
设置讨论组名称
setDiscussionName({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 描述:讨论组 Id
name:
- 类型:字符串
- 默认值:无
- 描述:讨论组名称
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setDiscussionName({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59',
name: 'Ironman, Hulk'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
addMemberToDiscussion
添加一名或者一组用户加入讨论组
addMemberToDiscussion({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 描述:讨论组 Id
userIdList:
- 类型:字符串数组
- 描述:邀请的用户 Id 列表
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.addMemberToDiscussion({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59',
userIdList: ['4567', '7654']
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
removeMemberFromDiscussion
供创建者将某用户移出讨论组
移出自己或者调用者非讨论组创建者将产生 -1 未知错误
removeMemberFromDiscussion({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 描述:讨论组 Id
userId:
- 类型:字符串
- 描述:用户 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.removeMemberFromDiscussion({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59',
userId: '4567'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
quitDiscussion
退出当前用户所在的某讨论组
quitDiscussion({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 默认值:无
- 描述:讨论组 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.quitDiscussion({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setDiscussionInviteStatus
设置讨论组成员邀请权限
setDiscussionInviteStatus({params}, callback(ret, err))
params
discussionId:
- 类型:字符串
- 描述:讨论组 Id
inviteStatus:
- 类型:字符串
- 描述:邀请状态,默认为开放,参见 讨论组邀请状态
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setDiscussionInviteStatus({
discussionId: '1b9f7abe-a5ae-463d-8ff8-d96deaf40b59',
inviteStatus: 'OPENED'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setWalletStyles
设置钱包页面的样式,请在打开红包之前设置
注意:使用此接口需要下载 RCRedWallet 模块,然后上传自定义模块并勾选。
setWalletStyles({params})
params
themeFontSize:
- 类型:数字
- 描述:(可选项)标准字体大小
- 默认:14
NavTitfontSize:
- 类型:数字
- 描述:(可选项)标题栏字体大小
- 默认:16
pageChargeFont:
- 类型:数字
- 描述:(可选项)首页金额大小
- 默认:22
pageTitleStr:
- 类型:字符串
- 描述:(可选项)钱包标题
- 默认:我的钱包
themePageColor:
- 类型:字符串
- 描述:(可选项)钱包页顶部主题色
- 默认:#157EFB
pageBtnColor:
- 类型:字符串
- 描述:(可选项)钱包页,充值、提现按钮颜色
- 默认:#0665D6
themeBtnColor:
- 类型:字符串
- 描述:(可选项)按钮主题色
- 默认:#157EFB
themeNavColor:
- 类型:字符串
- 描述:(可选项)导航条主题色
- 默认:#157EFB
NavTitColor:
- 类型:字符串
- 描述:(可选项)标题颜色
- 默认:#fff
示例代码
var rong = api.require('UIRongCloud');
rong.setWalletStyles({
themeFontSize:14,
NavTitfontSize:16,
pageChargeFont:22,
pageTitleStr:'谁的钱包',
themePageColor:'#157EFB',
pageBtnColor:'#0665D6',
themeBtnColor:'#157EFB',
themeNavColor:'#157EFB',
NavTitColor:'#fff'
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
walletSDKWithPartnerId
初始化函数
注意:使用此接口需要下载 RCRedWallet 模块,然后上传自定义模块并勾选。
walletSDKWithPartnerId({params})
params
partnerId:
- 类型:字符串
- 描述:渠道ID(融云/魔方金融分配给贵公司的渠道名称)
示例代码
var rong = api.require('UIRongCloud');
rong.walletSDKWithPartnerId({
partnerId:"*******"
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
walletSDKWithThirdToken
初始化三方令牌
注意:使用此接口需要下载 RCRedWallet 模块,然后上传自定义模块并勾选。
walletSDKWithThirdToken({params})
params
token:
- 类型:字符串
- 描述:三方令牌
示例代码
var rong = api.require('UIRongCloud');
rong.walletSDKWithThirdToken({
token:"*******"
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
openMyWallet
我的钱包页面
注意:iOS端使用此接口需要下载 RCRedWallet 模块,然后上传自定义模块并勾选。(Android 模块版本 1.4.0 后不再支持该方法)
openMyWallet()
示例代码
var rong = api.require('UIRongCloud');
rong.openMyWallet();
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
openConversationList
会话列表页
openConversationList({params},callback())
params
title:
- 类型:字符串
- 描述:(可选项)会话列表页面标题
isEnteredToCollectionWindow:
- 类型:布尔
- 描述:(可选项)当前会话列表是否为从聚合Cell点击进入的子会话列表,您在点击会话列表中的聚合Cell跳转到到子会话列表时,需要将此属性设置为true。
- 默认:false
showConnectingStatus:
- 类型:布尔
- 描述:(可选项)当连接状态变化SDK自动重连时,是否在NavigationBar中显示连接中的提示。
- 默认:true
conversationTypes:
- 类型:数组
- 描述:(可选项)设置需要显示哪些类型的会话参见 会话类型
- 默认:['PRIVATE','GROUP','DISCUSSION','CHATROOM','APPSERVICE','SYSTEM']
collectionTypes:
- 类型:数组
- 描述:(可选项)设置在列表中需要聚合为一条显示的会话类型数组参见会话类型
- 默认:['GROUP','DISCUSSION']
avatarStyle:
- 类型:字符串
- 描述:(可选项)头像形状,(android不支持)
- 默认:rectangle
- 取值范围:
- rectangle:方形
- cycle:圆形
avatarSize:
- 类型:JSON对象
- 描述:(可选项)头像大小,(android不支持)
- 内部字段:
{
with:46, //数字类型;头像宽;默认:46
height:46 //数字类型;头像高;默认:46
}
cellBgColor:
- 类型:字符串
- 描述:(可选项) Cell的背景颜色,(android不支持)
topCellBgColor:
- 类型:字符串
- 描述:(可选项) 置顶会话的Cell背景颜色,(android不支持)
navigationBar:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#d6d6d6', //字符串类型;导航条背景色;默认:#d1d1d1
backColor: '#fff', //字符串类型;导航条返回按钮色;默认:#fff(android不支持)
backImage:'' //字符串类型;导航条返回按钮图片的路径,支持fs://,widget://;默认融云提供的按钮(ios不支持)
}
示例代码
var rong = api.require('UIRongCloud');
rong.openConversationList({
avatarSize:{
width:46,
height:46
},
avatarStyle: 'cycle',
isEnteredToCollectionWindow:false,
showConnectingStatus:true,
title:'会话列表'
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
openConversation
会话页面
openConversation(params,callback())
params
conversationType:
- 类型:字符串
- 描述:消息的会话类型,参见 会话类型
targetId:
- 类型:字符串
- 描述:目标 Id。根据不同的 conversationType,可能是用户 Id、讨论组 Id、群组 Id 或聊天室 Id 等
title:
- 类型:字符串
- 描述:页面标题
navigationBar:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
titleColor: '#fff', //字符串类型;标题文字颜色;默认:#fff
bgColor: '#0099ff', //字符串类型;导航条背景色;默认:#0099ff
backColor: '#fff', //字符串类型;导航条返回按钮色;默认:#fff(android不支持)
backImage:'', //字符串类型;导航条返回按钮图片的路径,支持fs://,widget://;默认融云提供的按钮(ios不支持)
backImageSize:25 //数字类型;返回按钮大小;默认:25 (ios不支持)
}
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: 'back' //字符串类型;交互事件类型
//back:从聊天界面返回
targetId:1 //字符串类型;目标 Id
}
示例代码
var rong = api.require('UIRongCloud');
rong.openConversation({
conversationType: 'PRIVATE',
targetId: '9527',
title: '9527'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
configChatSubTitle
配置聊天页面的副标题;会在会话页面标题下方显示 (android 模块版本1.4.0 之后不再支持 )
注意:必须在调用openConversation接口 或 openConversationList接口之前调用本接口才能有效。
configChatSubTitle(params)
params
titleConfig:
- 类型:JSON类型的数组
- 描述:(必选项) 根据会话id配置会话页面的副标题
- 内部字段
[
{
targetId:"" //字符串类型; 会话id
subTitle:"" //字符串类型; 副标题
},
....
]
subTitleSize
- 类型:数字类型
- 描述:可选, 副标题字体大小
- 默认值:14
subTitleColor
- 类型:字符串类型
- 描述:可选,副标题字体颜色
- 默认值:#000000
bgColor:
- 类型:字符串类型
- 描述:可选,副标题背景颜色
- 默认值:#EAEAEA
bgHeight:
- 类型:数字类型
- 描述:可选,副标题背景的高度
- 默认值:30
示例代码
var rong = api.require('UIRongCloud');
rong.configChatSubTitle({
title:"这是副标题"
});
可用性
iOS系统,Android系统
可提供的 1.1.4 及更高版本
configChatButtons
配置通过 openConversation 或 openConversationList接口打开的聊天页面的右上角按钮和输入框扩展面板按钮
注意:必须在调用openConversation 或 openConversationList接口之前调用本接口才能有效。本接口非全局接口,只对当前页面有效。 (Android 模块版本 1.4.0 后不再支持该方法)
configChatButtons(params,callback())
params
pluginItems:
- 类型:数组
- 描述:(可选项) 聊天界面输入框扩展面板自定义显示各默认功能按钮
- 默认值:['file','image','location','emoji','redPacket','camera', 'sight']
- 取值范围:
- emoji:动态表情(iOS平台一直显示)(由于ios上动态表情默认是一直显示,如果要保证ios和android之间的通信,android必须配置这个参数;如果是android单平台使用,可以不配置此参数)
- file:文件(仅支持 android 平台)
- camera:文件(仅支持 iOS 平台)
- image:相册/图片
- location:位置(集成的高德地图)
- redPacket:红包(注:android由于SDK升级,从1.0.6版本开始,如果设置redPacket选项将会有红包和转账功能,在群组里只显示红包功能,单聊里显示红包和转账功能。iOS端使用此功能需要下载 RCRedWallet 模块,然后上传自定义模块并勾选。 )
- sight:短视频(在iOS端模块写死,传不传都有发送短视频功能)
- audio:语音通话(注:android上只要添加audio和video中的一个,两个都会显示)
- video:视频通话
insertPluginItems:
- 类型:数组
- 描述:(可选项)聊天扩展功能面板添加自定义按钮信息组成的数组(android不支持)
- 默认:不传则不添加显示自定义的按钮
- 内部字段:
[{
title: '', //字符串类型;按钮标题
icon: '', //字符串类型;按钮图标
tag: //数字类型;按钮标签值,以2开头的四位数(2XXX),如2001
}]
rightIcon:
- 类型:字符串
- 描述:(可选项)聊天页面右上角按钮图标,要求本地路径(fs://、widget)
- 默认:不传则不显示右上角按钮
- 注意:若rightIcons有值,则忽略本参数。由于平台机制不同,在android端在本按钮点击事件里打开新页面时必须先关闭当前聊天页面,否则新页面无法正常显示
rightIcons:
- 类型:数组
- 描述:(可选项)聊天页面右上角按钮图标路径(要求本地路径fs://、widget://)组成的数组
- 默认:不传则以rightIcon为准
- 注意:若本参数有值,则忽略rightIcon参数。由于平台机制不同,在android端在本按钮点击事件里打开新页面时必须先关闭当前聊天页面,否则新页面无法正常显示
dndIcon:
- 类型:布尔
- 描述:(可选项)聊天页面标题后面是否显示消息免打扰图标(此参数用来控制在调用setConversationNotificationStatus接口后是否在会话页面的标题栏后面显示消息免打扰图标)
- 默认:false
callback()
ret:
- 类型:JSON 对象
- 描述:按钮点击回调参数
- 内部字段:
{
eventType: 'right' //字符串类型;交互事件类型
//right:右上角按钮点击事件
//plugin:点击聊天输入框扩展面板按钮事件
tag:2001 //数字类型;点击按钮的 tag 值,当eventType 为 plugin 时android不支持;当eventType 为 right 时表示点击的右上角按钮的索引(从右往左依次从0递增)
}
示例代码
var rong = api.require('UIRongCloud');
rong.configChatButtons({
pluginItems: [‘file’,‘image’,‘location’,‘emoji’,‘redPacket’],
insertPluginItems: [{
title:'按钮1',
icon:'widget://res/btn1.png',
tag:2001
},{
title:'按钮2',
icon:'widget://res/btn2.png',
tag:2002
},{
title:'按钮3',
icon:'widget://res/btn3.png',
tag:2003
}],
rightIcon: 'fs://rightButton.png'
},function(ret){
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.4 及更高版本
close
关闭会话页面
close()
示例代码
var UIRongCloud = api.require('UIRongCloud');
UIRongCloud.close();
可用性
android系统
可提供的 1.0.4 及更高版本
configGroupChat
配置群聊相关功能。
注意:本接口属于非全局配置,仅对当前页面有效。需在每次openConversation接口打开群聊页面之前调用。
configGroupChat(params)
params
messageMentioned:
- 类型:布尔
- 描述:(可选项) 是否开启@功能
- 默认值:false
members:
- 类型:数组
- 描述:群组成员id列表,若不传则@功能和群组红包功能均会失效(android不支持)
membersInfo:
- 类型: JSON数组
- 描述:群组成员信息列表(ios不支持)
- 内部字段
userId: '1234' //字符串类型;用户id nickName: '哈哈' //字符串类型;用户昵称; avatarUrl:'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png' //字符串类型;用户头像链接
- 形式:
membersInfo:[ {userId:'1234', nickName:"haha", avatarUrl:"http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png"}, {userId:'1235', nickName:"haha1", avatarUrl:"http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png"}, {userId:'1238', nickName:"haha2", avatarUrl:"http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png"}, .... ]
示例代码
var users = ['sender','receiver'];
var UIRongCloud = api.require('UIRongCloud');
UIRongCloud.configGroupChat({
messageMentioned: true,
members:users
});
可用性
iOS系统、android系统
可提供的 1.0.1 及更高版本
configChat
显示对方输入状态、撤销刚(120秒)发送的消息功能配置
注意:显示对方输入状态功能仅对单聊有效
configChat(params)
params
messageRecall:
- 类型:布尔
- 描述:(可选项) 是否开启撤销刚发送消息的功能(android不支持;sdk默认会打开此功能)
- 默认值:false
typingStatus:
- 类型:布尔
- 描述:(可选项) 是否显示对方输入状态
- 默认值:false
示例代码
var UIRongCloud = api.require('UIRongCloud');
UIRongCloud.configChat({
messageRecall: true,
typingStatus: true
});
可用性
iOS系统,Android系统
可提供的 1.0.1 及更高版本
setUserAvatar
设置用户头像,此方法在 connect 成功回调之后执行
注意:
由于iOS端SDK功能现在,带UI的接口打开的页面不支持自动显示头像,需要吊样本接口设置用户头像。可在 addNeedAvatarListener 接口回调内调用本接口设置用户头像。
setUserAvatar(params)
params
userId:
- 类型:字符串
- 描述:用户id(connect成功回调返回来的id)
nickName:
- 类型:字符串
- 描述:用户昵称
avatarUrl:
- 类型:字符串
- 描述:头像URI
示例代码
var rong = api.require('UIRongCloud');
var params = {
userId : userId,
nickName : '白兰地',
avatarUrl : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.setUserAvatar(params);
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
refreshUserInfoCache
刷新用户缓存数据。
注意: 1、可在 addNeedAvatarListener 接口回调内调用本接口设置用户头像。 2、refreshUserInfoCache和setUserAvatar的区别:在android上融云提供了两种方式来显示用户信息,第一种是通过将用户信息携带到消息体中,在展示用户消息的时候,就会从消息体中取出用户信息,依次来展示用户头像和昵称,这是setUserAvatar接口实现的方式,目前只在android上有效,ios上用户信息无法携带到消息体中,所以如果涉及到android和ios之间的通讯,android上调用该接口,在ios上是无法展示用户信息的;为了解决此问题,在1.1.9版本中android添加了refreshUserInfoCache接口,同时android支持addNeedAvatarListener接口,refreshUserInfoCache可以配合addNeedAvatarListener接口使用,在会话界面中展示用户信息的时候,如果融云的SDK中没有找到用户信息时就会回调addNeedAvatarListener接口,开发者需要在该回调中调用refreshUserInfoCache接口,来缓存用户信息,以此来展示用户信息,如果再次有同一用户发来的消息时,是不会addNeedAvatarListener回调的,因为用了缓存,如果用户信息发生更改,直接调用refreshUserInfoCache接口来刷新用户信息
refreshUserInfoCache(params)
params
userId:
- 类型:字符串
- 描述:用户id(addNeedAvatarListener成功回调返回来的id)
nickName:
- 类型:字符串
- 描述:用户昵称
avatarUrl:
- 类型:字符串
- 描述:头像URI
示例代码
var rong = api.require('UIRongCloud');
var params = {
userId : userId,
nickName : '白兰地',
avatarUrl : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.refreshUserInfoCache(params);
可用性
Android系统
可提供的 1.1.9 及更高版本
startSingleCall
发起单人通话
startSingleCall(params)
params
targetId:
- 类型:字符串
- 描述:会话 id
type:
- 类型:字符串
- 描述:会话媒体类型
- 默认值:audio
- 取值范围:audio、video
示例代码
var rong = api.require('UIRongCloud');
var params = {
targetId : userId,
type : 'audio'
};
rong.startSingleCall(params);
可用性
ios系统、Android系统
可提供的 1.2.0 及更高版本
startMultiCall
发起多人通话
startMultiCall(params)
params
conversationType:
- 类型:字符串
- 描述:会话类型
- 默认值:GROUP
targetId:
- 类型:字符串
- 描述:会话 id
customUI:
- 类型:布尔类型
- 描述:是否使用自定义UI
- 默认:false
callName:
- 类型:字符串
- 描述:拨号时显示的对方名称(不传不显示)
type:
- 类型:字符串
- 描述:会话媒体类型
- 默认值:audio
- 取值范围:audio、video
userids:
- 类型:数组类型
- 描述:参与者 id 列表
- 默认值:无
names:
- 类型:数组
- 描述:参与者的昵称列表(与userids相对应)
- 默认:无
示例代码
var rong = api.require('UIRongCloud');
var params = {
targetId : userId,
type : 'audio',
userids:['1234', 'lan']
};
rong.startMultiCall(params);
可用性
ios系统、Android系统
可提供的 1.2.0 及更高版本
addParticipants
邀请用户加入当前通话 (仅限讨论组和群组)
addParticipants(params)
params
userIds:
- 类型:数组类型
- 描述:邀请的用户id列表
observerUserIds:
- 类型:数组类型
- 描述:邀请的观察者列表,没有观察者可以不传(ios不支持)
- 默认值:空
示例代码
var rong = api.require('UIRongCloud');
var params = {
userIds : ['1234', '0000']
};
rong.addParticipants(params);
可用性
ios系统,Android系统
可提供的 1.2.0 及更高版本
getCallSession
获取当前通话实体,通话实体中维护着当前通话的所有信息。
getCallSession(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:当前通话实体
- 内部字段:
{
status: //布尔类型;状态
activeTime: //数字类型;激活时间
callerUserId: //字符串类型;呼叫人id
callId: //字符串类型;通话id
conversationType: //字符串类型;会话类型
endTime: //数字类型;结束时间,仅支持android端
extra: //字符串类型;扩展字段
inviterUserId: //字符串类型;邀请人id
mediaType: //数字类型;通话媒体类型 1:audio 2:video
observerUserList: //数组类型;观察者数组=
selfUserId: //字符串类型;自己的id
startTime: //数字类型;开始时间
targetId: //字符串类型;targetId
callUserType: //字符串类型;用户类型; 1:NORMAL 2:OBSERVER,仅支持android端
participantProfileList: //JSON型的数组类型,当前的用户列表,包含观察者列表中的成员;内部字段:
{
mediaId: '',//字符串类型;mediaId
userId:'', //字符串类型;用户id
userType: //数字类型;用户类型; 1:NORMAL 2:OBSERVER
callStatus: //数字类型;通话状态 1:OUTGOING 2:INCOMING 3:RINGING 4:CONNECTED 5:IDLE
mediaType: //数字类型;通话媒体类型 1:audio 2:video
}
}
示例代码
var rong = api.require('UIRongCloud');
rong.getCallSession(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.2.0 及更高版本
setVideoProfile
设置本地视频属性,可用此接口设置本地视频分辨率,设置宽和高替换
setVideoProfile(params)
params
profile:
- 类型:字符串
- 描述:(可选项)通话视频参数
- 默认:480P
- 取值范围:
- 240P:320x240, 15fps, 200kbps
- 360P:480x360, 15fps, 350kbps
- 480P:640x480, 15fps, 500kbps
- 720P:1280x720, 15fps, 1000kbps
swapWidthAndHeight:
- 类型:布尔
- 描述:(可选项)是否交换宽和高 (android不支持)
- 默认:false
示例代码
var rong = api.require('UIRongCloud');
rong.setVideoProfile({
swapWidthAndHeight:true,
profile:‘480P’
});
可用性
iOS系统,Android系统
可提供的 1.2.0 及更高版本
checkDrawOverlaysPermission
检查是否开启悬浮窗权限(该接口暂仅支持android,Android 模块版本 1.4.0 后不再支持该方法)
checkDrawOverlaysPermission(params)
params
needOpenPermissionSetting:
- 类型:布尔类型
- 描述:是否打开权限设置页面
- 默认:false
示例代码
var rong = api.require('UIRongCloud');
rong.checkDrawOverlaysPermission({
needOpenPermissionSetting:true
});
可用性
Android系统
可提供的 1.2.0 及更高版本
addAvatarListener
添加点击聊天页面内头像的监听
addAvatarListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:点击头像的返回参数
- 内部字段:
{
userId: //字符串类型;点击的头像的用户的id
}
示例代码
var rong = api.require('UIRongCloud');
rong.addAvatarListener(function(ret) {
api.alert({msg:'点击的用户是'+.JSON.stringify(ret)});
});
可用性
iOS系统,Android系统
可提供的 1.0.1 及更高版本
addRTCCallListener
语音通话相关接口
addRTCCallListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:点击头像的返回参数
- 内部字段:
{
eventType:'cancel'
}
eventType参数列表
- cancel 已取消
- reject 已拒绝
- noResponse 未接听
- remoteBusyLine 对方忙,请稍后再拨
- remoteCancel 对方已取消
- remoteReject 对方已拒绝
- remoteNoResponse 对方未接听
- hangup 通话结束
- otherDeviceHadAccepted 其他设备已处理
示例代码
var rong = api.require('UIRongCloud');
rong.addRTCCallListener(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统,Android系统
可提供的 1.0.1 及更高版本
addNeedAvatarListener
添加需要设置头像的时刻的监听
注意:
可在本接口的回调里调用setUserAvatar接口设置用户头像。
addNeedAvatarListener(callback(ret))
callback(ret)
ret:
- 类型:JSON对象
- 描述:用户信息
- 内部字段:
{
userId: //字符串类型;需要设置头像的用户的id
}
示例代码
var rong = api.require('UIRongCloud');
rong.addNeedAvatarListener(function(ret) {
var params = {
userId : ret.userId,
nickName : '白兰地',
avatarUrl : 'http://7xq864.com1.z0.glb.clouddn.com/apicloud/9ddf7d56095abd26f2c7ef72bb142563.png'
};
rong.setUserAvatar(params);
});
可用性
iOS系统、android系统
可提供的 1.0.6 及更高版本
joinChatRoom
当前用户加入某聊天室
joinChatRoom({params}, callback(ret, err))
params
chatRoomId:
- 类型:字符串
- 描述:聊天室 Id
defMessageCount:
- 类型:数字
- 描述:进入聊天室拉取消息数目
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.joinChatRoom({
chatRoomId: '123',
defMessageCount: 20
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.6 及更高版本
quitChatRoom
当前用户退出某聊天室
quitChatRoom({params}, callback(ret, err))
params
chatRoomId:
- 类型:字符串
- 描述:聊天室 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: 30003
}
状态码说明:
状态码 | 说明 |
---|---|
30003 | 服务器超时 |
-10000 | 未调用 init 方法进行初始化 |
-10001 | 未调用 connect 方法进行连接 |
-10002 | 输入参数错误 |
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.quitChatRoom({
chatRoomId: '123'
}, function(ret, err) {
if (ret.status == 'success')
api.toast({ msg: JSON.stringify(ret.status) });
else
api.toast({ msg: err.code });
})
可用性
iOS系统,Android系统
可提供的 1.0.6 及更高版本
addToBlacklist
将某个用户加到黑名单中
addToBlacklist({params}, callback(ret, err))
params
userId:
- 类型:字符串
- 描述:要加入黑名单的用户 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.addToBlacklist({
userId: '688'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
removeFromBlacklist
将个某用户从黑名单中移出
removeFromBlacklist({params}, callback(ret, err))
params
userId:
- 类型:字符串
- 描述:要移出黑名单的用户 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.removeFromBlacklist({
userId: '688'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getBlacklistStatus
获取某用户是否在黑名单中
getBlacklistStatus({params}, callback(ret, err))
params
userId:
- 类型:字符串
- 描述:要查询的用户 Id
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success', // 状态码:success / error
result: 1 // 1-不在黑名单;0-在黑名单
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getBlacklistStatus({
userId: '688'
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getBlacklist
获取当前用户的黑名单列表
getBlacklist(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' ,// 状态码:success / error
result: ['aaa','bbb']
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getBlacklist(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
setNotificationQuietHours
设置消息通知免打扰时间
setNotificationQuietHours({params}, callback(ret, err))
params
startTime:
- 类型:字符串
- 描述:起始时间 格式 HH:MM:SS
spanMinutes :
- 类型:数字
- 描述:间隔分钟数 0 < spanMinutes < 1440。
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setNotificationQuietHours({
startTime: '22:00:00',
spanMinutes: 6
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
removeNotificationQuietHours
移除消息通知免打扰时间
removeNotificationQuietHours(callback(ret, err))
callback(ret, err)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.removeNotificationQuietHours(function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
getNotificationQuietHours
获取消息通知免打扰时间
getNotificationQuietHours(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
status: 'success' , // 状态码:success / error
result: {
startTime: "22:00:00", // 起始时间
spanMinutes: 6 // 间隔分钟数
}
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.getNotificationQuietHours(function(ret, err) {
api.toast({ msg: JSON.stringify(ret.result) });
})
可用性
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: 'success' // 状态码:success / error
}
示例代码
var rong = api.require('UIRongCloud');
// 之前调用 init 和 connect 的代码省略
rong.setConversationToTop({
conversationType: 'PRIVATE',
targetId: '9527',
isTop: true
}, function(ret, err) {
api.toast({ msg: ret.status });
})
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
推送消息的监听
pushListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 描述:操作结果
- 内部字段:
{
content: '' // 字符串类型;推送内容
data : // 字符串类型;推送数据
pushId : // 字符串类型;推送id
pushTitle : // 字符串类型;推送标题
senderId : // 字符串类型;推送senderId
senderName : // 字符串类型;推送senderName
targetId : // 字符串类型;推送targetId
targetUserName : // 字符串类型;推送
}
可用性
Android系统
可提供的 1.0.8 及更高版本
会话类型
区分不同的会话形式,字符串类型
取值范围
- PRIVATE (单聊)
- DISCUSSION (讨论组)
- GROUP (群组)
- CHATROOM(聊天室)
- CUSTOMER_SERVICE (客服)
- SYSTEM (系统)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
会话通知提醒状态
会话通知提醒的状态,开启或者关闭,字符串类型
取值范围
- DO_NOT_DISTURB (免打扰)
- NOTIFY (提醒)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
讨论组邀请状态
讨论组邀请状态,开放或者关闭,字符串类型
取值范围
- OPENED (开放邀请)
- CLOSED (关闭邀请)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
连接状态
连接状态,字符串类型
取值范围
- CONNECTED (连接成功)
- CONNECTING (连接中)
- DISCONNECTED (断开连接)
- KICKED (用户账户在其他设备登录,本机会被踢掉线)
- NETWORK_UNAVAILABLE (网络不可用)
- SERVER_INVALID (服务器异常或无法连接)
- TOKEN_INCORRECT (Token 不正确)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
发送出的消息状态
连接状态,字符串类型
取值范围
- FAILED (发送失败)
- SENDING (发送中)
- SENT (已发送)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本
接收到的消息状态
接收到的消息状态,字符串类型
取值范围
- UNREAD (未读)
- READ (已读)
- LISTENED (已收听)
- DOWNLOADED ( 已下载)
可用性
iOS系统,Android系统
可提供的 1.0.0 及更高版本