为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。
nim 插件概述
本插件是基于NIM(网易云信)原生SDK封装的插件,使用本插件可以实现基本的即时通讯功能,包括—— 单聊功能:支持发送语音,图片,表情,文字,位置,附件; 群聊功能:提供了普通群、以及高级群两种形式的群聊功能.高级群拥有更多的权限操作,两种群聊形式在共有操作上保持了接口一致.开发时推荐只选择一种群类型进行开发.普通群和高级群在原则上是不能互相转换的,他们的群类型在创建时就已经确定;
插件使用攻略
使用之前须从网易云平台地址申请开发者账号并创建应用,获取AppKey。
使用此插件之前必须先配置config.xml文件,配置完毕,需通过云端编译生效,配置方法如下:
<meta-data name="com.vivo.push.api_key" value="18374205-eb53-428c-bad2-7a75712f6487" />
<meta-data name="com.vivo.push.app_id" value="11425" />
<feature name="nim">
<param name="AppKey" value=""/>
<param name="ApnsCername" value=""/>
<param name="PkCername" value=""/>
<param name="xmAppId" value=""/>
<param name="xmAppKey" value=""/>
<param name="xmCertificateName" value=""/>
<param name="hwAppId" value="100006871"/>
<param name="hwCertificateName" value=""/>
<param name="mzAppId" value=""/>
<param name="mzAppKey" value=""/>
<param name="mzCertificateName" value=""/>
<param name="vivoCertificateName" value=""/>
<param name="oppoAppId" value=""/>
<param name="oppoAppKey" value=""/>
<param name="oppoAppSercet" value=""/>
<param name="oppoCertificateName" value=""/>
</feature>
字段描述:
AppKey:(必须配置)从网易云获取的 AppKey值。AppKey的申请方法参考新手指引。 ApnsCername:(可选配置)iOS推送证书名(仅iOS可用) PkCername:(可选配置)iOS推送PushKit配置(仅iOS可用) xmAppId:(可选配置)小米推送配置(仅Android可用) xmAppKey:(可选配置)小米推送配置(仅Android可用) xmCertificateName:(可选配置)小米推送配置(仅Android可用) hwCertificateName:(可选配置)华为推送配置(仅Android可用) mzAppId:(可选配置) 魅族推送配置(仅Android可用) mzAppKey:(可选配置)魅族推送配置(仅Android可用) mzCertificateName:(可选配置)魅族推送配置(仅Android可用) vivoCertificateName:(可选配置)VIVO推送配置(仅Android可用) oppoAppId:(可选配置) OPPO推送配置(仅Android可用) oppoAppKey:(可选配置)OPPO推送配置(仅Android可用) oppoAppSercet:(可选配置)OPPO推送配置(仅Android可用) oppoCertificateName:(可选配置)OPPO推送配置(仅Android可用)
华为推送集成配置 华为推送需要下载agconnect-services.json放到和config.xml同级目录下面
第三方厂商推送 各个第三方厂商配套插件自定义插件 第三方厂商配套插件下载 。
插件错误代码含义参考表
code | 详细描述 |
---|---|
-1 | 参数错误 |
1 | 错误的参数 |
2 | 多媒体文件异常 |
3 | 图片异常 |
4 | url异常 |
5 | 读取/写入文件异常 |
6 | 无效的token |
7 | HTTP请求失败 |
16 | 用户信息缺失 (未登录 或 未提供用户资料) |
14 | SQL语句执行失败 |
8 | 无录音权限 |
9 | 录音初始化失败 |
10 | 录音失效 |
11 | 播放初始化失败 |
200 | 操作成功 |
201 | 客户端版本不对,需升级sdk |
302 | 用户名或密码错误 |
403 | 非法操作或没有权限 |
404 | 对象不存在 |
405 | 参数长度过长 |
406 | 对象只读 |
408 | 客户端请求超时 |
414 | 参数错误 |
415 | 客户端网络问题 |
416 | 频率控制 |
422 | 账号被禁用 |
500 | 服务器内部错误 |
503 | 服务器繁忙 |
509 | 无效协议 |
801 | 群人数达到上限 |
802 | 没有权限 |
803 | 群不存在 |
804 | 用户不在群 |
805 | 群类型不匹配 |
806 | 创建群数量达到限制 |
807 | 群成员状态错误 |
808 | 申请成功 |
809 | 已经在群内 |
810 | 邀请成功 |
998 | 解包错误 |
999 | 打包错误 |
1000 | 本地操作异常 |
登录
login({params}, callback(ret, err))
userId:
password:
ret:
{
status: true, //布尔型;true||false
userId : '' //用户id
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.login({
userId : '1001',
password : '1qaz2wsx'
},function(ret, err) {
});
账号创建请参考:网易云通信Server Http API接口文档
iOS系统,Android系统
可提供的1.0.0及更高版本
退出
logout(callback(ret, err))
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.logout(function(ret, err){
});
iOS登录为异步回调,退出失败会返回信息。安卓没有异步回调,操作接口就返回成功。
iOS系统,Android系统
可提供的1.0.0及更高版本
被踢的监听
onKick(callback(ret))
ret:
{
code : 1 //数字类型;
//1 被另外一个客户端踢下线 (互斥客户端一端登录挤掉上一个登录中的客户端)
//2 被服务器踢下线, 仅iOS支持
//3 被另外一个客户端手动选择踢下线
}
var demo = api.require('nim');
demo.onKick(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
即将发送消息监听
willSendIMMessage(callback(ret))
ret:
{
messageId : ,// 消息ID,唯一标识
messageType : ,//消息类型:
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
sessionId : ,// 会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType :, //0-单聊,1-群聊, 2- 聊天室
content : //发送文本内容
}
var demo = api.require('nim');
demo.willSendIMMessage(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
消息发送进度监听
onSendMessageWithProgress(callback(ret))
ret:
{
progress : 0.51222,
messageId : '123123123adsfad'
}
var demo = api.require('nim');
demo.onSendMessageWithProgress(function(ret){
});
文本消息,地理位置消息会没有这个监听
iOS系统,Android系统
可提供的1.0.0及更高版本
收到新消息监听
onRecvIMMessages(callback(ret))
ret:
{
messages: [{
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
}]
}
var demo = api.require('nim');
demo.onRecvIMMessages(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取最近会话
allRecentSession(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
messages:[{
sessionType: 0, //0-单聊,1-群聊, 2- 聊天室
unreadCount : 11, //未读消息数
lastMessage : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
}
}]
}
err:
{
errorCode: -1,
errorMessage : '无最近会话消息'
}
var demo = api.require('nim');
demo.allRecentSession(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取云端消息记录
fetchMessageHistory({params}, callback(ret, err))
sessionId:
sessionType
limit
sync
startTime
ret:
{
status: true, //布尔型;true||false
messages : [{
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
ext : //扩展消息
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.fetchMessageHistory({
sessionId : '1002',
sessionType : 0,
limit : 100,
sync : false,
startTime : 0
},function(ret, err){
});
安卓在未登录情况下无返回值。
iOS系统,Android系统
可提供的1.0.0及更高版本
发送文本消息及表情
sendText({params}, callback(ret, err))
sessionId:
sessionType
content
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, 0 文本类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendText({
sessionId : '1002',
sessionType : 0,
content : '我是文本测试',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送图片
sendImage({params}, callback(ret, err))
sessionId:
sessionType
filePath:
displayName:
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, 1 图片类型消息
from:, //消息来源
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendImage({
sessionId : '1002',
sessionType : 0,
filePath : 'widget://image/refresh.png',
displayName : '我是图片',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送地理位置信息
sendLocationMsg({params}, callback(ret, err))
sessionId:
sessionType
title:
latitude:
longitude:
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, 4 位置类型消息
from:, //消息来源
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendLocationMsg({
sessionId : '1002',
sessionType : 0,
title : '我是地理位置',
latitude : 102,
longitude : 39,
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送音频消息
sendAudio({params}, callback(ret, err))
sessionId:
sessionType
filePath:
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, //2 声音类型消息
from:, //消息来源
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小
duration:,//时长,毫秒为单位(音频,视频)
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendAudio({
sessionId : '1002',
sessionType : 0,
filePath : 'widget://res/bandari.mp3',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送视频
sendVideo({params}, callback(ret, err))
sessionId:
sessionType
filePath:
displayName:
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型,3 视频类型消息
from:, //消息来源
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
displayName:,//显示名称(文件,图片,视频)
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendVideo({
sessionId : '1002',
sessionType : 0,
filePath : 'widget://res/demo.mp4',
displayName : '我是测试视频',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送文件
sendFile({params}, callback(ret, err))
sessionId:
sessionType
filePath:
displayName:
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, 6 文件类型消息
from:, //消息来源
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
displayName:,//显示名称(文件,图片,视频)
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendFile({
sessionId : '1002',
sessionType : 0,
filePath : 'widget://res/demo.mp4',
displayName : '我是测试视频',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
切换音频的输出设备
switchAudioOutputDevice({params}, callback(ret))
outputDevice
ret:
{
status: true
}
var demo = api.require('nim');
demo.switchAudioOutputDevice({
outputDevice : 1
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断是否正在播放音频
isPlaying(callback(ret))
ret:
{
status: true //布尔型;true||false
}
var demo = api.require('nim');
demo.isPlaying(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
播放音频
playAudio({params}, callback(ret, err))
filePath:
ret:
{
status: true, //布尔型;true||false
evenType : 'start' //start:开始播放|end:播放结束
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.playAudio({
filePath : 'widget://res/demo.mp3',
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止播放音频
stopPlay(callback(ret,err))
ret:
{
status: true //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.stopPlay(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断是否正在录制音频
isRecording(callback(ret))
ret:
{
status: true //布尔型;true||false
}
var demo = api.require('nim');
demo.isRecording(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
录音
recordAudioForDuration({params}, callback(ret,err))
duration:
ret:
{
status: true, //布尔型;true||false
evenType : 'start', //start:开始录音|success:录音完成|cancel:取消录音
filePath : ''
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.recordAudioForDuration({
duration : 30
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消录音
cancelRecord(callback(ret))
ret:
{
status: true
}
var demo = api.require('nim');
demo.cancelRecord(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
停止录制音频
stopRecord(callback(ret))
ret:
{
status: true
}
var demo = api.require('nim');
demo.stopRecord(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
群组移除监听
onIMTeamRemoved(callback(ret))
ret:
{
teamId:,//群ID
teamName:,//群名称
type:,//群类型
owner:,//群拥有者ID, 普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
avatarUrl:,//群头像
intro:,//群介绍
announcement:,//群公告
memberNumber:,//群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化,必要时需要调用fetchTeamInfo进行刷新
level:,//群等级,目前群人数主要是限制群人数上限
createTime:,//群创建时间
joinMode:,//群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2
notifyForNewMsg://群消息提醒的类型 0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒
}
var demo = api.require('nim');
demo.onIMTeamRemoved(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
群组更新监听
onIMTeamUpdated(callback(ret))
ret:
{
teamId:,//群ID
teamName:,//群名称
type:,//群类型
owner:,//群拥有者ID, 普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
avatarUrl:,//群头像
intro:,//群介绍
announcement:,//群公告
memberNumber:,//群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化,必要时需要调用fetchTeamInfo进行刷新
level:,//群等级,目前群人数主要是限制群人数上限
createTime:,//群创建时间
joinMode:,//群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2
notifyForNewMsg://群消息提醒的类型 0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒
}
var demo = api.require('nim');
demo.onIMTeamUpdated(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
黑名单列表发生变化监听
onBlackListChanged(callback(ret))
ret:
{
status : true
}
var demo = api.require('nim');
demo.onBlackListChanged(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取我的所有群组
allMyTeams(callback(ret,err))
ret:
{
status : true, //布尔型 true|false
teams:[{
teamId:,//群ID
teamName:,//群名称
type:,//群类型
owner:,//群拥有者ID, 普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
avatarUrl:,//群头像
intro:,//群介绍
announcement:,//群公告
memberNumber:,//群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化,必要时需要调用fetchTeamInfo进行刷新
level:,//群等级,目前群人数主要是限制群人数上限
createTime:,//群创建时间
joinMode:,//群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2
notifyForNewMsg://群消息提醒的类型 0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.allMyTeams(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
本地获取群组信息
teamById({params}, callback(ret,err))
teamId:
ret:
{
status : true, //布尔型 true|false
message:[{
teamId:,//群ID
teamName:,//群名称
type:,//群类型
owner:,//群拥有者ID, 普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
avatarUrl:,//群头像
intro:,//群介绍
announcement:,//群公告
memberNumber:,//群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化,必要时需要调用fetchTeamInfo进行刷新
level:,//群等级,目前群人数主要是限制群人数上限
createTime:,//群创建时间
joinMode:,//群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2
notifyForNewMsg://群消息提醒的类型 0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.teamById({
teamId : '64430396'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
远程获取群组信息
fetchTeamInfo({params}, callback(ret,err))
teamId:
ret:
{
status : true, //布尔型 true|false
message:[{
teamId:,//群ID
teamName:,//群名称
type:,//群类型
owner:,//群拥有者ID, 普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
avatarUrl:,//群头像
intro:,//群介绍
announcement:,//群公告
memberNumber:,//群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化,必要时需要调用fetchTeamInfo进行刷新
level:,//群等级,目前群人数主要是限制群人数上限
createTime:,//群创建时间
joinMode:,//群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2
notifyForNewMsg://群消息提醒的类型 0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.fetchTeamInfo({
teamId : '64430396'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
创建群组
createTeam({params}, callback(ret,err))
name:
type:
joinMode:
postscript:
avatarUrl:
intro:
announcement:
users:
inviteMode:
beInviteMode:
ret:
{
status : true, //布尔型 true|false
teamId://群ID
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.createTeam({
name : '2001',
type : 0,
joinMode : 0,
postscript : '',
intro : '',
announcement : '',
users : ['1002']
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
邀请用户入群
addUsers({params}, callback(ret,err))
teamId:
users:
postscript:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.addUsers({
teamId : '64430396',
users : ['1002']
},function(ret, err){
});
1、请求完成后,如果是普通群,被邀请者将直接入群;如果是高级群,云信服务器会下发一条系统消息到目标用户,目标用户可以选择同意或者拒绝入群。 2、高级群不能直接拉人,发出邀请成功会返回810,此处应该认为邀请已发出
iOS系统,Android系统
可提供的1.0.0及更高版本
同意群邀请(仅限高级群)
acceptInviteWithTeam({params}, callback(ret,err))
teamId:
invitorId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.acceptInviteWithTeam({
teamId : '64430396',
invitorId : '1001'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
拒绝群邀请(仅限高级群)
rejectInviteWithTeam({params}, callback(ret,err))
teamId:
invitorId:
rejectReason:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.rejectInviteWithTeam({
teamId : '64430396',
invitorId : '1001',
rejectReason :''
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
用户主动申请加群(仅限高级群)
applyToTeam({params}, callback(ret,err))
teamId:
message:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.applyToTeam({
teamId : '64430396',
message : '我要加群'
},function(ret, err){
});
errorCode: 808:已经在群里,809:申请等待通过.
iOS系统,Android系统
可提供的1.0.0及更高版本
通过申请(仅限高级群)
passApplyToTeam({params}, callback(ret,err))
teamId:
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.passApplyToTeam({
teamId : '64430396',
userId : '1002'
},function(ret, err){
});
errorCode: 809 : 已经在群里
iOS系统,Android系统
可提供的1.0.0及更高版本
拒绝申请(仅限高级群)
rejectApplyToTeam({params}, callback(ret,err))
teamId:
userId:
rejectReason:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.rejectApplyToTeam({
teamId : '64430396',
userId : '1002',
rejectReason : '拒绝原因'
},function(ret, err){
});
errorCode: 509 : 已拒绝
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群名称
updateTeamName({params}, callback(ret,err))
teamId:
teamName:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamName({
teamId : '64430396',
teamName : '群组名称'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群介绍
updateTeamIntro({params}, callback(ret,err))
teamId:
intro:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamIntro({
teamId : '64430396',
intro : '群介绍'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群公告
updateTeamAnnouncement({params}, callback(ret,err))
teamId:
announcement:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamAnnouncement({
teamId : '64430396',
announcement : '群公告'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群验证方式
updateTeamJoinMode({params}, callback(ret,err))
teamId:
joinMode:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamJoinMode({
teamId : '64430396',
joinMode : 2
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
提升管理员(仅限高级群)
addManagersToTeam({params}, callback(ret,err))
teamId:
users:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.addManagersToTeam({
teamId : '64430396',
users : ['1002']
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
移除管理员(仅限高级群)
removeManagersFromTeam({params}, callback(ret,err))
teamId:
users:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.removeManagersFromTeam({
teamId : '64430396',
users : ['1002']
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
转让群(仅限高级群)
transferManagerWithTeam({params}, callback(ret,err))
teamId:
newOwnerId:
isLeave:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.transferManagerWithTeam({
teamId : '64430396',
newOwnerId : '1002',
isLeave : false
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取群成员
fetchTeamMembers({params}, callback(ret,err))
teamId:
ret:
{
status : true, //布尔型 true|false
message : [{
teamId : ,//群ID
userId:,//群成员ID
invitor:,//邀请者,仅iOS支持, android不支持
type:,//群成员类型,0:普通群员,1:群拥有者,2:群管理员,3:申请加入用户
nickname:,//群昵称
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.fetchTeamMembers({
teamId : '64430396'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
用户退群
quitTeam({params}, callback(ret,err))
teamId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.quitTeam({
teamId : '64430396'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
踢出用户
kickUsers({params}, callback(ret,err))
teamId:
users:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.kickUsers({
teamId : '64430396',
users : ['1002']
},function(ret, err){
});
被踢出的用户相关会话信息仍然会保留,但不再能接收关于此群的消息. 当前android只支持每次踢一个用户,故参数users对应的只能是一个用户id.
iOS系统,Android系统
可提供的1.0.0及更高版本
解散群
dismissTeam({params}, callback(ret,err))
teamId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.dismissTeam({
teamId : '64430396'
},function(ret, err){
});
群解散后,所有群用户关于此群会话会被保留,但是不能能够在此群会话里收发消息
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群消息通知状态 (关闭群消息提醒)
updateNotifyStateForTeam({params}, callback(ret,err))
teamId:
teamMessageNotifyType:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateNotifyStateForTeam({
teamId : '64430396',
teamMessageNotifyType : 0
},function(ret, err){
});
群组通知是一种消息类型 ,用户在创建群或者进入群成功之后,任何关于群的变动,云信服务器都会下发一条群通知消息.群通知消息和其他消息一样,可从提供的消息查询接口中获取. DK 在收到群通知之后,会对本地缓存的群信息做出对应的修改,然后触发与修改相对应的委托事件回调. 群通知是接收型的消息,开发者不应该自己手动去创建和发送群通知消息. 群消息通知设置 SDK 提供了修改群消息通知的接口,上层可以通过设置这个选项以影响群消息的通知行为.当设置 teamMessageNotifyType 为 2 时,群内消息将不会有 APNS 通知.当然上层也可以使用这一属性来决定收到在线消息时的 APP 表现 (是否响铃等).
iOS系统,Android系统
可提供的1.0.0及更高版本
内置系统通知监听
onIMSystemMessageRecieved(callback(ret))
ret:
{
type:,//申请入群:0,拒绝入群:1,邀请入群:2,拒绝入群邀请:3,添加好友:5
timestamp:,//时间戳
sourceID:,//操作者
targetID:,//目标ID,群ID或者是用户ID
postscript:,//附言 , 仅iOS支持
read:,//是否已读
}
var demo = api.require('nim');
demo.onIMSystemMessageRecieved(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取本地存储的内置系统通知
fetchSystemNotifications({params}, callback(ret,err))
limit:
ret:
{
status : true,
notifications : [{
type:,//申请入群:0,拒绝入群:1,邀请入群:2,拒绝入群邀请:3,添加好友:5
timestamp:,//时间戳
sourceID:,//操作者
targetID:,//目标ID,群ID或者是用户ID
postscript:,//附言 , 仅iOS支持
read:,//是否已读
status://0:未处理状态
//1:已通过验证
//2:已拒绝
//3:已忽略
//4:已过期
//5:开发者可自定义的扩展类型1
//6:开发者可自定义的扩展类型2
//7:开发者可自定义的扩展类型3
//8:开发者可自定义的扩展类型4
//9:开发者可自定义的扩展类型5
}]
}
var demo = api.require('nim');
demo.fetchSystemNotifications({
limit : 10
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取本地存储的内置系统未读数
allNotificationsUnreadCount(callback(ret))
ret:
{
status : true,
count : 11
}
var demo = api.require('nim');
demo.allNotificationsUnreadCount(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除本地存储的全部内置系统通知
deleteAllNotifications(callback(ret))
ret:
{
status : true
}
var demo = api.require('nim');
demo.deleteAllNotifications(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
标记本地存储的全部内置系统通知为已读
markAllNotificationsAsRead(callback(ret, err))
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.markAllNotificationsAsRead(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
用户个人信息发生变化监听
onUserInfoUpdate(callback(ret))
ret:
{
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
mobile:,//电话号码
ext:,//用户自定义扩展字段
account:,//用户账号
}
var demo = api.require('nim');
demo.onUserInfoUpdate(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取用户资料
userInfo({params}, callback(ret,err))
userId:
ret:
{
status : true,
userId :,//用户帐号
alias :,//备注名
notifyForNewMsg:,//是否需要消息提醒
isInMyBlackList:,//是否在黑名单中
userInfo : {
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
ext : ,//扩展信息
mobile:,//电话号码
account :,//用户帐号
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.userInfo({
userId : '1001'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取服务器用户资料
fetchUserInfos({params}, callback(ret,err))
userIds:
ret:
{
status : true,
message : [{
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
ext : ,//扩展信息
mobile:,//电话号码
account :,//用户帐号
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.fetchUserInfos({
userId : '1001'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
更新当前用户信息
updateMyUserInfo({params}, callback(ret,err))
nickname:
avatar:
sign:
gender:
email:
birth:
mobile:
ext:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateMyUserInfo({
nickname : '昵称',
avatar : '',
sign : '',
gender : 1,
email : '',
birth : '',
mobile : '',
ext : {
key : 'key1'
}
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取好友列表
myFriends(callback(ret))
ret:
{
status : true, //布尔型 true|false
users : [{
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
ext : ,//扩展信息
mobile:,//电话号码
account :,//用户帐号
}]
}
var demo = api.require('nim');
demo.myFriends(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
好友请求
requestFriend({params}, callback(ret,err))
userId:
operation:
message:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.requestFriend({
userId : '1002',
operation : 1,
message : ''
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除好友
deleteFriend({params}, callback(ret,err))
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.deleteFriend({
userId : '1002'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取黑名单成员列表
myBlackList(callback(ret))
ret:
{
status : true,
users : [{
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
ext : ,//扩展信息
mobile:,//电话号码
account :,//用户帐号
}]
}
var demo = api.require('nim');
demo.myBlackList(function(ret){
});
云信中,黑名单和好友关系是互相独立的,即修改好友关系不会影响黑名单关系,同时,修改黑名单也不会对好友关系进行操作. 黑名单列表有本地缓存,缓存会在登录后与服务器自动进行同步更新.接口返回的是User列表
iOS系统,Android系统
可提供的1.0.0及更高版本
添加用户到黑名单
addToBlackList({params}, callback(ret,err))
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.addToBlackList({
userId : '1002'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
将用户移除黑名单
removeFromBlackBlackList({params}, callback(ret,err))
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.removeFromBlackBlackList({
userId : '1002'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断某用户是否在自己的黑名单中
isUserInBlackList({params}, callback(ret,err))
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.isUserInBlackList({
userId : '1002'
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取静音成员列表
myMuteUserList(callback(ret))
ret:
{
status : true,
users : [{
nickName :,//用户昵称
avatarUrl :,//用户头像
sign:,//用户签名
gender:,//用户性别0:未知性别,1:男,2:女
email:,//邮箱
birth:,//生日
ext : ,//扩展信息
mobile:,//电话号码
account :,//用户帐号
}]
}
var demo = api.require('nim');
demo.myMuteUserList(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置消息提醒
updateNotifyStateForUser({params}, callback(ret,err))
userId:
notify:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateNotifyStateForUser({
userId : '1002',
notify : true
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
判断是否需要消息通知
notifyForNewMsgForUser({params}, callback(ret,err))
userId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.notifyForNewMsgForUser({
userId : '1002'
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
聊天室在线状态变化的监听
onChatRoomStatusChanged(callback(ret))
ret:
{
roomId : '',//聊天室id
status : ,//聊天室在线状态:
//0 正在进入
//1 进入聊天室成功
//2 进入聊天室失败
//3 和聊天室失去链接
}
var demo = api.require('nim');
demo.onChatRoomStatusChanged(function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
被踢出聊天室的监听
onChatRoomKickOutEvent(callback(ret))
ret:
{
roomId :,//聊天室id
code :,//被踢出事件代码:
//1 聊天室已经被解散
//2 被管理员踢出
//3 被其他端踢出
//4 当前连接状态异常
//5 被加黑了
}
var demo = api.require('nim');
demo.onChatRoomKickOutEvent(function(ret,err){
});
当用户被主播或者管理员踢出聊天室、聊天室被关闭(被解散),会收到通知. 注意:收到被踢出通知后,不需要再调用退出聊天室接口,SDK 会负责聊天室的退出工作.可以在踢出通知中做相关缓存的清理工作和界面操作.
iOS系统,Android系统
可提供的1.0.0及更高版本
用户加入聊天室
enterChatRoom({params}, callback(ret,err))
roomId:
nickName:
avatar:
extension:
notifyExtension:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.enterChatRoom({
roomId : '3002',
nickName : '小飞',
avatar : '',
extension : {key : 'key1'},
notifyExtension : {key : 'key2'},
},function(ret,err){
});
创建聊天室必须服务端创建: 参考服务端API文档-聊天室
iOS系统,Android系统
可提供的1.0.0及更高版本
用户退出聊天室
exitChatRoom({params}, callback(ret,err))
roomId:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.exitChatRoom({
roomId : '3002'
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取聊天室历史消息
getChatRoomHistoryMsg({params}, callback(ret,err))
roomId:
startTime:
startTime:
ret:
{
status : true, //布尔型 true|false
message : [{
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
ext : ,//扩展消息
eventType : ,//操作发起者ID
operator : ,//操作类型
targets : ,//被操作者ID列表
notificationType : ,//通知类型
attachment : ''//通知附加信息
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.getChatRoomHistoryMsg({
roomId : '3002',
startTime : 0,
limit : 10
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取聊天室基本信息
getChatRoomInfo({params}, callback(ret,err))
roomId:
ret:
{
status : true, //布尔型 true|false
message : {
roomId :, //聊天室id
name : , //聊天室名称
creator:,//创建者id
announcement:,//公告
onLineUserCount:,//当前在线人数
broadcastUrl:,//广播流url
extention:,//扩展属性
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.getChatRoomInfo({
roomId : '3002'
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
获取聊天室成员
getChatRoomMembers({params}, callback(ret,err))
roomId:
type:
time:
limit:
ret:
{
status : true, //布尔型 true|false
message : [{
userId: ,//用户id
avatar: ,//用户头像url
enterTime: ,//进入的时间
extention:,//进聊天室时提交的扩展字段
nick: ,//呢称
roomId: ,//聊天室id
updateTime: ,//更新时间
isInBlackList: ,//是否在黑名单中
isMuted: ,//是否被禁言
isOnline:,//是否在线
isValid:,//是否有效
memberType:,//成员类型, 游客: -2, 受限用户: -1, 普通用户:0, 创建者:1, 管理员: 2
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.getChatRoomMembers({
roomId : '3002',
type : 0,
time : 0,
limit : 10
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
批量获取指定成员在聊天室中的信息
getChatRoomMembersByIds({params}, callback(ret,err))
roomId:
userIds:
ret:
{
status : true, //布尔型 true|false
message : [{
userId: ,//用户id
avatar: ,//用户头像url
enterTime: ,//进入的时间
extention:,//进聊天室时提交的扩展字段
nick: ,//呢称
roomId: ,//聊天室id
updateTime: ,//更新时间
isInBlackList: ,//是否在黑名单中
isMuted: ,//是否被禁言
isOnline:,//是否在线
isValid:,//是否有效
memberType:,//成员类型, 游客: -2, 受限用户: -1, 普通用户:0, 创建者:1, 管理员: 2
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.getChatRoomMembersByIds({
roomId : '3002',
userIds : ['1001','1002']
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
加入/移出黑名单
addUserToBlackList({params}, callback(ret,err))
roomId:
userId:
isAdd:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.addUserToBlackList({
roomId : '3002',
userIds : '1001',
isAdd : true
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
加入用户到禁言名单/取消某用户的禁言
muteUser({params}, callback(ret,err))
roomId:
userId:
isMute:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.muteUser({
roomId : '3002',
userIds : '1001',
isMute : true
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置/取消管理员
setAdmin({params}, callback(ret,err))
roomId:
userId:
isAdmin:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.setAdmin({
roomId : '3002',
userIds : '1001',
isAdmin : true
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置/移除普通成员
setNormal({params}, callback(ret,err))
roomId:
userId:
isNormal:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.setNormal({
roomId : '3002',
userIds : '1001',
isNormal : true
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
从聊天室中移除某个用户
kickMemberFromChatRoom({params}, callback(ret,err))
roomId:
userId:
reason:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.kickMemberFromChatRoom({
roomId : '3002',
userIds : '1001',
reason : '原因'
},function(ret,err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
发送已读回执
sendMessageReceipt({params}, callback(ret, err))
messageId:
sessionId:
sessionType
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendMessageReceipt({
messageId : '12312312313',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
接受已读回执
onIMRecvMessageReceipt(callback(ret))
ret:
{
timestamp: 0,
messageId : '',
sessionId : ''
}
var demo = api.require('nim');
demo.onIMRecvMessageReceipt(function(ret){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
未读数清零
markAllMessagesReadInSession({params}, callback(ret, err))
sessionId:
sessionType
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.markAllMessagesReadInSession({
sessionId : '1002',
sessionType : 0,
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
修改群头像
updateTeamAvatar({params}, callback(ret,err))
teamId:
avatarUrl:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamAvatar({
teamId : '64430396',
teamName : '群组头像'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
更新成员群昵称
updateUserNick({params}, callback(ret,err))
teamId:
userId:
newNick:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateUserNick({
teamId : '64430396',
userId : '1231313',
newNick : '昵称'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
修改自己的群昵称
updateMyTeamNick({params}, callback(ret,err))
teamId:
newNick:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateMyTeamNick({
teamId : '64430396',
newNick : '昵称'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
更新群自定义信息
updateTeamCustomInfo({params}, callback(ret,err))
teamId:
clientCustomInfo:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateTeamCustomInfo({
teamId : '64430396',
clientCustomInfo : '我自定义内容'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
群成员禁言
updateMuteStateByUserId({params}, callback(ret,err))
teamId:
userId:
mute:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateMuteStateByUserId({
teamId : '64430396',
userId : '123123',
mute : true
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
禁言群全体成员
updateMuteStateByAll({params}, callback(ret,err))
teamId:
mute:
ret:
{
status : true //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateMuteStateByAll({
teamId : '64430396',
mute : true
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
查询群成员资料
queryTeamMemberByUserId({params}, callback(ret,err))
teamId:
userId:
ret:
{
status : true, //布尔型 true|false
message : {
teamId : ,//群ID
userId:,//群成员ID
invitor:,//邀请者,仅iOS支持, android不支持
type:,//群成员类型,0:普通群员,1:群拥有者,2:群管理员,3:申请加入用户
nickname:,//群昵称
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.queryTeamMemberByUserId({
teamId : '64430396',
userId : '123123'
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
设置系统通知状态(iOS不一定生效,暂时不清楚iOS接口方法)
setSystemMessageStatus({params}, callback(ret,err))
messageId:
messageStatus:
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.setSystemMessageStatus({
messageId : '1231231231',
messageStatus : 1
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
删除一条系统通知
deleteSystemMessage({params}, callback(ret,err))
messageId:
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.deleteSystemMessage({
messageId : '1231231231',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
设置单条系统通知为已读
setSystemMessageRead({params}, callback(ret,err))
messageId:
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.setSystemMessageRead({
messageId : '1231231231',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
消息撤回
revokeMessage({params}, callback(ret,err))
messageId:
sessionId:
sessionType
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.revokeMessage({
messageId : '1231231231',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
监听消息撤回
onIMRecvRevokeMessageNotification(callback(ret))
ret:
{
status : true, //布尔型 true|false
message : {},//撤回消息内容
fromUserId : '',//撤回消息发起者
postscript : ''//撤回的附言
}
var demo = api.require('nim');
demo.onIMRecvRevokeMessageNotification(function(ret){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
登录状态监听
onIMLogin(callback(ret))
ret:
{
step : '',
//iOS:
//1:连接服务器
//2: 连接服务器成功
//3:连接服务器失败
//4:登录
//5:登录成功
//6:登录失败
//7:开始同步
//8:同步完成
//9:连接断开
//10:网络切换
//android:
//0:未定义
//1:未登录/登录失败
//2:网络连接已断开
//3:正在连接服务器
//4:正在登录中
//5:正在同步数据
//6:已成功登录
//7:被其他端的登录踢掉
//8:被同时在线的其他端主动踢掉
//9:被服务器禁止登录
//10:客户端版本错误
//11:用户名或密码错误
}
var demo = api.require('nim');
demo.onIMLogin(function(ret){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
是否登录状态(同步接口)
isLogined()
##ret:
var demo = api.require('nim');
var ret = demo.isLogined();
iOS系统,Android系统
可提供的1.1.5及更高版本
是否登录状态(同步接口)
isMyFriend({params})
account:
##ret:
var demo = api.require('nim');
var ret = demo.isMyFriend({account:'123123'});
iOS系统,Android系统
可提供的1.1.5及更高版本
是否在此群组(同步接口)
isMyTeam({params})
teamId:
##ret:
var demo = api.require('nim');
var ret = demo.isMyTeam({teamId:'123123'});
iOS系统,Android系统
可提供的1.1.5及更高版本
最近会话的删除
deleteRecentSession({params}, callback(ret,err))
sessionId:
sessionType
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.deleteRecentSession({
sessionId : '1231231231',
sessionType : 0
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
手动下载附件
downloadAttachment({params}, callback(ret,err))
messageId:
sessionId:
sessionType
ret:
{
status : true, //布尔型 true|false
evenType : 'Start' // Start Progress Complete
message : {},
progress : 0.1,
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.downloadAttachment({
messageId : '1231231231',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.1.5及更高版本
停止附件下载
abortDownloadAttachment(callback(ret))
ret:
{
status : true, //布尔型 true|false
}
var demo = api.require('nim');
demo.abortDownloadAttachment();
iOS系统,Android系统
可提供的1.1.5及更高版本
开启或者关闭推送
enablePushService({params}, callback(ret,err))
enable:
ret:
{
status : true, //布尔型 true|false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.enablePushService({
enable : true
},function(ret, err){
});
Android系统
可提供的1.1.5及更高版本
发送提示消息
sendTips({params}, callback(ret, err))
sessionId:
sessionType
content
ext:
ret:
{
status: true, //布尔型;true||false
message : {
messageId:, //消息ID,唯一标识
messageType:, //消息类型, 0 文本类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
ext : //扩展消息
}
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.sendTips({
sessionId : '1002',
sessionType : 0,
content : '我是提示消息测试',
ext : {
key : 'key1'
}
}, function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
查询本地消息历史
queryMessageHistory({params}, callback(ret, err))
sessionId:
sessionType
limit
messageId
ret:
{
status: true, //布尔型;true||false
messages : [{
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
ext : //扩展消息
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.queryMessageHistory({
sessionId : '1002',
sessionType : 0,
limit : 100,
messageId : ''
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
查询本地消息历史
queryMessageHistoryByTyps({params}, callback(ret, err))
sessionId:
sessionType
limit
messageId
types
ret:
{
status: true, //布尔型;true||false
messages : [{
messageId:, //消息ID,唯一标识
messageType:, //消息类型,
//0 文本类型消息
//1 图片类型消息
//2 声音类型消息
//3 视频类型消息
//4 位置类型消息
//5 通知类型消息
//6 文件类型消息
//10 提醒类型消息
//100 自定义类型消息
from:, //消息来源
text:, //消息文本
timestamp:, //消息发送时间
sessionId:, //会话ID,如果当前session为team,则sessionId为teamId,如果是P2P则为对方帐号
sessionType:, //会话类型,0:单聊 1:群聊 2:聊天室
path:,//本地路径
url:,//远程路径
fileLength:,//文件大小(音频文件没有这个参数)
thumbPath://缩略图本地路径(图片)
duration:,//时长,毫秒为单位(音频,视频)
coverUrl:,//视频封面的远程路径(视频)
latitude:,//纬度(位置消息)
longitude:,//经度(位置消息)
title:,//标题(位置消息)
displayName:,//显示名称(文件,图片,视频)
ext : //扩展消息
}]
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.queryMessageHistoryByTyps({
sessionId : '1002',
sessionType : 0,
limit : 100,
messageId : '',
types : [0,1,2,3]
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除与某个对象的全部消息记录
clearChattingHistory({params}, callback(ret, err))
sessionId:
sessionType
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.clearChattingHistory({
sessionId : '1002',
sessionType : 0,
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
更新好友关系
updateFriendFields({params}, callback(ret, err))
userId:
alias
ext
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.updateFriendFields({
......
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
清空点对点会话的服务端的消息。不会删除本地的消息记录(暂不支持群聊)
clearServerHistory({params}, callback(ret, err))
sessionId:
sessionType
removeRoam
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.clearServerHistory({
sessionId : '1002',
sessionType : 0,
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除本地某条消息,并同时删除服务端历史、漫游
deleteMsgSelf({params}, callback(ret, err))
messageId:
sessionId:
sessionType
ext
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.deleteMsgSelf({
messageId : '12312312313',
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
音视频事件监听
addRtcEventListener(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
evenType : 'onJoinChannel',//音视频事件
//onJoinChannel
//onLeaveChannel
//onUserJoined
//onUserLeave
//onUserAudioStart
//onUserAudioStop
//onUserVideoStart
//onUserVideoStop
//onDisconnect
//onClientRoleChange
result : '',
channelId : '',
elapsed : '',
uid : '',
oldRole : '',
newRole : ''
}
var demo = api.require('nim');
demo.addRtcEventListener(function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置本地视频预览
addLocalVideo({params}, callback(ret, err))
rect:
{
x:0, //左上角x坐标,默认0
y:0, //左上角y坐标,默认0
w:320, //宽度,默认'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,默认'auto',页面从y位置开始自动充满父页面高度
marginLeft:0, //相对父页面左外边距的距离,默认0
marginTop:0, //相对父页面上外边距的距离,默认0
marginBottom:0, //相对父页面下外边距的距离,默认0
marginRight:0 //相对父页面右外边距的距离,默认0
}
fixedOn:
fixed:
mirror:
scalingType:
mirrorMode:
ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
demo.addLocalVideo({
.....
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
删除本地视频预览
delLocalVideo(callback(ret, err))
ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
demo.delLocalVideo({
.....
},function(ret, err){
});
err:
{
errorCode: -1,
errorMessage : ''
}
iOS系统,Android系统
可提供的1.0.0及更高版本
设置本地视频预览参数
setLocalViewParam({params})
mirror:
scalingType:
mirrorMode:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.setLocalViewParam({
.....
});
iOS系统,Android系统
可提供的1.0.0及更高版本
加入音视频房间
joinChannel({params}, callback(ret, err))
token:
channelName:
uid:
ret:
{
status: true, //布尔型;true||false
}
err:
{
errorCode: -1,
errorMessage : ''
}
var demo = api.require('nim');
demo.joinChannel({
.....
},function(ret, err){
});
iOS系统,Android系统
可提供的1.0.0及更高版本
设置远程视频预览
addRemoteVideo({params}, callback(ret, err))
rect:
{
x:0, //左上角x坐标,默认0
y:0, //左上角y坐标,默认0
w:320, //宽度,默认'auto',页面从x位置开始自动充满父页面宽度
h:480 //高度,默认'auto',页面从y位置开始自动充满父页面高度
marginLeft:0, //相对父页面左外边距的距离,默认0
marginTop:0, //相对父页面上外边距的距离,默认0
marginBottom:0, //相对父页面下外边距的距离,默认0
marginRight:0 //相对父页面右外边距的距离,默认0
}
fixedOn:
fixed:
uid:
mirror:
scalingType:
mirrorMode:
ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
demo.addRemoteVideo({
.....
},function(ret, err){
});
iOS系统,Android系统
移除远端视频预览
delRemoteVideo({params}, callback(ret, err))
uid:
ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
demo.delRemoteVideo({
.....
},function(ret, err){
});
iOS系统,Android系统
设置远端视频预览参数
setRemoteViewParam({params})
uid:
mirror:
scalingType:
mirrorMode:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.setRemoteViewParam({
.....
});
iOS系统,Android系统
可提供的1.0.0及更高版本
订阅或取消订阅指定远端用户的视频流。
subscribeRemoteVideoStream({params})
uid:
subscribe:
streamType:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.subscribeRemoteVideoStream({
.....
});
iOS系统,Android系统
可提供的1.0.0及更高版本
离开房间,即挂断或退出通话。
leaveChannel()
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.leaveChannel();
iOS系统,Android系统
可提供的1.0.0及更高版本
切换前置/后置摄像头。
switchCamera()
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.switchCamera();
iOS系统,Android系统
可提供的1.0.0及更高版本
取消或恢复发布本地视频流。 成功调用该方法后,远端会触发 onUserVideoMute 回调。
muteLocalVideoStream({params})
muted:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.muteLocalVideoStream({...});
iOS系统,Android系统
可提供的1.0.0及更高版本
开关本地音频发送。该方法用于允许或禁止上行本地音频流。
muteLocalAudioStream({params})
muted:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.muteLocalAudioStream({...});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消或恢复订阅指定远端用户音频流。加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。
subscribeRemoteAudioStream({params})
uid:
subscribe:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.subscribeRemoteAudioStream({...});
iOS系统,Android系统
可提供的1.0.0及更高版本
取消或恢复订阅所有远端用户音频流。
subscribeAllRemoteAudioStreams({params})
subscribe:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.subscribeAllRemoteAudioStreams({...});
iOS系统,Android系统
可提供的1.0.0及更高版本
开启/关闭本地音频采集。
enableLocalAudio({params})
enabled:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.enableLocalAudio({...});
iOS系统,Android系统
可提供的1.0.0及更高版本
是否开启本地视频采集。
enableLocalVideo({params})
enabled:
##ret:
{
status: true, //布尔型;true||false
}
var demo = api.require('nim');
var ret = demo.enableLocalVideo({...});
iOS系统,Android系统
可提供的1.0.0及更高版本