nim

即时通讯

login

logout

onKick

willSendIMMessage

onSendMessageWithProgress

onRecvIMMessages

allRecentSession

fetchMessageHistory

sendText

sendImage

sendLocationMsg

sendAudio

sendVideo

sendFile

switchAudioOutputDevice

isPlaying

playAudio

stopPlay

isRecording

recordAudioForDuration

cancelRecord

stopRecord

onIMTeamRemoved

onIMTeamUpdated

onBlackListChanged

allMyTeams

teamById

fetchTeamInfo

createTeam

addUsers

acceptInviteWithTeam

rejectInviteWithTeam

applyToTeam

passApplyToTeam

rejectApplyToTeam

updateTeamName

updateTeamIntro

updateTeamAnnouncement

updateTeamJoinMode

addManagersToTeam

removeManagersFromTeam

transferManagerWithTeam

fetchTeamMembers

quitTeam

kickUsers

dismissTeam

updateNotifyStateForTeam

onIMSystemMessageRecieved

fetchSystemNotifications

allNotificationsUnreadCount

deleteAllNotifications

markAllNotificationsAsRead

onUserInfoUpdate

userInfo

fetchUserInfos

updateMyUserInfo

myFriends

requestFriend

deleteFriend

myBlackList

addToBlackList

removeFromBlackBlackList

isUserInBlackList

myMuteUserList

updateNotifyStateForUser

notifyForNewMsgForUser

onChatRoomStatusChanged

onChatRoomKickOutEvent

enterChatRoom

exitChatRoom

getChatRoomHistoryMsg

getChatRoomInfo

getChatRoomMembers

getChatRoomMembersByIds

addUserToBlackList

muteUser

setAdmin

setNormal

kickMemberFromChatRoom

sendMessageReceipt

onIMRecvMessageReceipt

markAllMessagesReadInSession

updateTeamAvatar

updateUserNick

updateMyTeamNick

updateTeamCustomInfo

updateMuteStateByUserId

updateMuteStateByAll

queryTeamMemberByUserId

setSystemMessageStatus

deleteSystemMessage

setSystemMessageRead

revokeMessage

onIMRecvRevokeMessageNotification

onIMLogin

isLogined

isMyFriend

isMyTeam

deleteRecentSession

downloadAttachment

abortDownloadAttachment

enablePushService

sendTips

queryMessageHistory

queryMessageHistoryByTyps

clearChattingHistory

updateFriendFields

clearServerHistory

deleteMsgSelf

addRtcEventListener

addLocalVideo

delLocalVideo

setLocalViewParam

joinChannel

addRemoteVideo

delRemoteVideo

setRemoteViewParam

subscribeRemoteVideoStream

leaveChannel

switchCamera

muteLocalVideoStream

muteLocalAudioStream

subscribeRemoteAudioStream

subscribeAllRemoteAudioStreams

enableLocalAudio

enableLocalVideo

音视频

论坛示例

为帮助用户更好更快的使用插件,论坛维护了一个示例,示例中包含示例代码供您参考。

概述

nim 插件概述

本插件是基于NIM(网易云信)原生SDK封装的插件,使用本插件可以实现基本的即时通讯功能,包括—— 单聊功能:支持发送语音,图片,表情,文字,位置,附件; 群聊功能:提供了普通群、以及高级群两种形式的群聊功能.高级群拥有更多的权限操作,两种群聊形式在共有操作上保持了接口一致.开发时推荐只选择一种群类型进行开发.普通群和高级群在原则上是不能互相转换的,他们的群类型在创建时就已经确定;

插件使用攻略

使用之前须从网易云平台地址申请开发者账号并创建应用,获取AppKey。

使用此插件之前必须先配置config.xml文件,配置完毕,需通过云端编译生效,配置方法如下:

  • 名称:nim
  • 参数:AppKey
  • 配置示例:
  <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

登录

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)用户账号。

password:

  • 类型:字符串
  • 描述:(必填项)用户密码。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
    userId : ''        //用户id
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

退出

logout(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.logout(function(ret, err){
});

补充说明

iOS登录为异步回调,退出失败会返回信息。安卓没有异步回调,操作接口就返回成功。

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onKick

被踢的监听

onKick(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    code : 1 //数字类型;
                //1	被另外一个客户端踢下线 (互斥客户端一端登录挤掉上一个登录中的客户端)
                   //2	被服务器踢下线, 仅iOS支持
                   //3	被另外一个客户端手动选择踢下线
}

示例代码

var demo = api.require('nim');
demo.onKick(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

willSendIMMessage

即将发送消息监听

willSendIMMessage(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

消息发送进度监听

onSendMessageWithProgress(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    progress : 0.51222,
    messageId : '123123123adsfad'
}

示例代码

var demo = api.require('nim');
demo.onSendMessageWithProgress(function(ret){
});

补充说明

文本消息,地理位置消息会没有这个监听

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onRecvIMMessages

收到新消息监听

onRecvIMMessages(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取最近会话

allRecentSession(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : '无最近会话消息'
}

示例代码

var demo = api.require('nim');
demo.allRecentSession(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fetchMessageHistory

获取云端消息记录

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

limit

  • 类型:字符串
  • 描述:检索条数, 最大限制100条
  • 默认值: 100

sync

  • 类型:布尔型
  • 描述:同步数据: 是否在远程获取消息成功之后同步到本地数据库,如果选择同步,则同步之后不会触发消息添加的回调。默认不同步(false),true为同步。
  • 默认值: false

startTime

  • 类型:Long型
  • 描述:需要检索的起始时间,没有则传入0
  • 默认值: 0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送文本消息及表情

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

content

  • 类型:字符串
  • 描述:(必填项)消息内容。

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送图片

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

filePath:

  • 类型:字符串
  • 描述:(必填项)图片路径(支持fs:// widget:// 路径)。

displayName:

  • 类型:字符串
  • 描述:(非必填)显示名称。

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送地理位置信息

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

title:

  • 类型:字符串
  • 描述:(可选项)位置的地址名。

latitude:

  • 类型:double
  • 描述:(可选项)经度。
  • 默认值: 0.0

longitude:

  • 类型:double
  • 描述:(可选项)纬度。
  • 默认值: 0.0

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送音频消息

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

filePath:

  • 类型:字符串
  • 描述:(必填项)语音文件路径(支持fs:// widget://)。

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送视频

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

filePath:

  • 类型:字符串
  • 描述:(必填项)视频文件路径(支持fs:// widget://)。

displayName:

  • 类型:字符串
  • 描述:(可选项)显示名称

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

发送文件

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

filePath:

  • 类型:字符串
  • 描述:(必填项)文件路径(支持fs:// widget://)。

displayName:

  • 类型:字符串
  • 描述:(可选项)显示名称

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

切换音频的输出设备

switchAudioOutputDevice({params}, callback(ret))

params

outputDevice

  • 类型:数字型
  • 描述:(必填项)0:听筒,1:扬声器。
  • 默认值: 0

callback(ret)

ret:

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

示例代码

var demo = api.require('nim');
demo.switchAudioOutputDevice({
    outputDevice : 1
}, function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isPlaying

判断是否正在播放音频

isPlaying(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true  //布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.isPlaying(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

playAudio

播放音频

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

params

filePath:

  • 类型:字符串
  • 描述:(必填项)语音文件路径(支持fs:// widget://)。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
    evenType : 'start' //start:开始播放|end:播放结束
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.playAudio({
    filePath : 'widget://res/demo.mp3',
}, function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopPlay

停止播放音频

stopPlay(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true  //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.stopPlay(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isRecording

判断是否正在录制音频

isRecording(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true	//布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.isRecording(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

recordAudioForDuration

录音

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

params

duration:

  • 类型:数字型
  • 描述:(必填项)最长录音时长(秒)。
  • 默认值: 30

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status: true,      //布尔型;true||false
    evenType : 'start', //start:开始录音|success:录音完成|cancel:取消录音
    filePath : ''
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.recordAudioForDuration({
    duration : 30
}, function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

cancelRecord

取消录音

cancelRecord(callback(ret))

callback(ret)

ret:

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

示例代码

var demo = api.require('nim');
demo.cancelRecord(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

stopRecord

停止录制音频

stopRecord(callback(ret))

callback(ret)

ret:

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

示例代码

var demo = api.require('nim');
demo.stopRecord(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onIMTeamRemoved

群组移除监听

onIMTeamRemoved(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

群组更新监听

onIMTeamUpdated(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

黑名单列表发生变化监听

onBlackListChanged(callback(ret))

callback(ret)

ret:

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

示例代码

var demo = api.require('nim');
demo.onBlackListChanged(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

allMyTeams

获取我的所有群组

allMyTeams(callback(ret,err))

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.allMyTeams(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

teamById

本地获取群组信息

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群组Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.teamById({
    teamId : '64430396'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fetchTeamInfo

远程获取群组信息

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群组Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.fetchTeamInfo({
    teamId : '64430396'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

createTeam

创建群组

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

params

name:

  • 类型:字符串
  • 描述:(必填项)群名称。

type:

  • 类型:数字型
  • 描述:(可选项)创建群类别,普通群:0,高级群:1,默认为普通群.
  • 默认值:0

joinMode:

  • 类型:数字型
  • 描述:(可选项)群验证方式,只有高级群才有群验证模式,普通群一律不需要验证.默认为不需要,允许所有人加入:0,需要验证:1,不允许任何人加入:2;
  • 默认值:0

postscript:

  • 类型:字符串
  • 描述:(可选项)邀请附言,当创建的群为高级群需要带上,普通群没有认证过程,所以不需要;

avatarUrl:

  • 类型:字符串
  • 描述:(可选项)群头像,可选参数

intro:

  • 类型:字符串
  • 描述:(可选项)群介绍,可选参数

announcement:

  • 类型:字符串
  • 描述:(可选项)群公告,可选参数

users:

  • 类型:数组
  • 描述:(必填项)邀请群成员.不能为空,不邀请人时传自己的userId; 当创建普通群时,必须要添加一个其它成员.

inviteMode:

  • 类型:数字型
  • 描述:(可选项)群邀请权限( 0 :只有管理员/群主可以邀请他人入群 1:所有人可以邀请其他人入群).
  • 默认值:0

beInviteMode:

  • 类型:数字型
  • 描述:(可选项)被邀请模式(0 : 需要被邀请方同意 1:不需要被邀请方同意).
  • 默认值:0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true, //布尔型 true|false
    teamId://群ID
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

邀请用户入群

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

users:

  • 类型:数组
  • 描述:(必填项)userId组成的数组.

postscript:

  • 类型:字符串
  • 描述:(可选项)邀请附言 (仅iOS有效)。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

同意群邀请(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

invitorId:

  • 类型:字符串
  • 描述:(必填项)邀请者Id(不是被邀请者)。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.acceptInviteWithTeam({
    teamId : '64430396',
    invitorId : '1001'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

rejectInviteWithTeam

拒绝群邀请(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

invitorId:

  • 类型:字符串
  • 描述:(必填项)邀请者Id(不是被邀请者)。

rejectReason:

  • 类型:字符串
  • 描述:(可选项)拒绝原因。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.rejectInviteWithTeam({
    teamId : '64430396',
    invitorId : '1001',
    rejectReason :''
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

applyToTeam

用户主动申请加群(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

message:

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

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

通过申请(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户Id.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

拒绝申请(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户Id.

rejectReason:

  • 类型:字符串
  • 描述:(可选项)拒绝原因.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

修改群名称

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

teamName:

  • 类型:字符串
  • 描述:(必填项)群组名称.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamName({
    teamId : '64430396',
    teamName : '群组名称'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateTeamIntro

修改群介绍

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

intro:

  • 类型:字符串
  • 描述:(必填项)群介绍.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamIntro({
    teamId : '64430396',
    intro : '群介绍'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateTeamAnnouncement

修改群公告

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

announcement:

  • 类型:字符串
  • 描述:(必填项)群公告.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamAnnouncement({
    teamId : '64430396',
    announcement : '群公告'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateTeamJoinMode

修改群验证方式

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

joinMode:

  • 类型:数字型
  • 描述:(必填项)群验证方式,允许所有人加入:0,需要验证:1,不允许任何人加入:2

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamJoinMode({
    teamId : '64430396',
    joinMode : 2
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addManagersToTeam

提升管理员(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

users:

  • 类型:数组
  • 描述:(必填项)userId组成的数组

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.addManagersToTeam({
    teamId : '64430396',
    users : ['1002']
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeManagersFromTeam

移除管理员(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

users:

  • 类型:数组
  • 描述:(必填项)userId组成的数组

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.removeManagersFromTeam({
    teamId : '64430396',
    users : ['1002']
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

transferManagerWithTeam

转让群(仅限高级群)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

newOwnerId:

  • 类型:字符串
  • 描述:(必填项)新群主ID

isLeave:

  • 类型:布尔型
  • 描述:(可选项)是否同时离开群组,true离开
  • 默认值: false

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取群成员

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
    message : [{
        teamId : ,//群ID
        userId:,//群成员ID
        invitor:,//邀请者,仅iOS支持, android不支持
        type:,//群成员类型,0:普通群员,1:群拥有者,2:群管理员,3:申请加入用户
        nickname:,//群昵称
    }]
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.fetchTeamMembers({
    teamId : '64430396'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

quitTeam

用户退群

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.quitTeam({
    teamId : '64430396'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

kickUsers

踢出用户

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

users:

  • 类型:数组
  • 描述:(必填项)userId组成的数组

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

解散群

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.dismissTeam({
    teamId : '64430396'
},function(ret, err){
});

补充说明

群解散后,所有群用户关于此群会话会被保留,但是不能能够在此群会话里收发消息

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateNotifyStateForTeam

修改群消息通知状态 (关闭群消息提醒)

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

teamMessageNotifyType:

  • 类型:数字型
  • 描述:(可选项)设置指定群消息通知类型(0:全部消息提醒,1:群所有消息不提醒,2:仅管理员消息提醒)。
  • 默认值: 0:全部消息提醒

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

内置系统通知监听

onIMSystemMessageRecieved(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取本地存储的内置系统通知

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

params

limit:

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

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取本地存储的内置系统未读数

allNotificationsUnreadCount(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,
    count : 11
}

示例代码

var demo = api.require('nim');
demo.allNotificationsUnreadCount(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteAllNotifications

删除本地存储的全部内置系统通知

deleteAllNotifications(callback(ret))

callback(ret)

ret:

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

示例代码

var demo = api.require('nim');
demo.deleteAllNotifications(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

markAllNotificationsAsRead

标记本地存储的全部内置系统通知为已读

markAllNotificationsAsRead(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.markAllNotificationsAsRead(function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onUserInfoUpdate

用户个人信息发生变化监听

onUserInfoUpdate(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取用户资料

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)//用户帐号。

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,
    userId :,//用户帐号
    alias :,//备注名
    notifyForNewMsg:,//是否需要消息提醒
    isInMyBlackList:,//是否在黑名单中
    userInfo : {
        nickName :,//用户昵称
        avatarUrl :,//用户头像
        sign:,//用户签名
        gender:,//用户性别0:未知性别,1:男,2:女
        email:,//邮箱
        birth:,//生日
        ext : ,//扩展信息
        mobile:,//电话号码
        account :,//用户帐号
    }
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.userInfo({
    userId : '1001'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

fetchUserInfos

获取服务器用户资料

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

params

userIds:

  • 类型:数组
  • 描述:(必填项)用户id列表。

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,
    message : [{
        nickName :,//用户昵称
        avatarUrl :,//用户头像
        sign:,//用户签名
        gender:,//用户性别0:未知性别,1:男,2:女
        email:,//邮箱
        birth:,//生日
        ext : ,//扩展信息
        mobile:,//电话号码
        account :,//用户帐号
    }]
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.fetchUserInfos({
    userId : '1001'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateMyUserInfo

更新当前用户信息

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

params

nickname:

  • 类型:字符串
  • 描述:(可选项)用户昵称。

avatar:

  • 类型:字符串
  • 描述:(可选项)用户头像 (仅支持http地址的头像地址,开发者自行验证控制)。

sign:

  • 类型:字符串
  • 描述:(可选项)用户签名。

gender:

  • 类型:数字型
  • 描述:(可选项)用户性别 0:未知 ,1:男 ,2:女。
  • 默认值:1

email:

  • 类型:字符串
  • 描述:(可选项)只支持合法邮箱 (开发者自行验证控制)。

birth:

  • 类型:字符串
  • 描述:(可选项)用户生日yyyy-MM-dd (开发者自行验证控制)。

mobile:

  • 类型:字符串
  • 描述:(可选项)合法手机号 (开发者自行验证控制)。

ext:

  • 类型:JSON对象
  • 描述:(可选项)拓展字段。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取好友列表

myFriends(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

好友请求

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

operation:

  • 类型:数字型
  • 描述:(可选项)1:添加好友(直接添加为好友,无需验证) 2:请求添加好友 3:通过添加好友请求 4:拒绝添加好友请求
  • 默认值:1

message:

  • 类型:字符串
  • 描述:(可选项)自定义验证消息。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.requestFriend({
    userId : '1002',
    operation : 1,
    message : ''
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteFriend

删除好友

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.deleteFriend({
    userId : '1002'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

myBlackList

获取黑名单成员列表

myBlackList(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

添加用户到黑名单

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.addToBlackList({
    userId : '1002'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

removeFromBlackBlackList

将用户移除黑名单

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.removeFromBlackBlackList({
    userId : '1002'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

isUserInBlackList

判断某用户是否在自己的黑名单中

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true   //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.isUserInBlackList({
    userId : '1002'
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

myMuteUserList

获取静音成员列表

myMuteUserList(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

设置消息提醒

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)目标用户ID。

notify:

  • 类型:布尔型
  • 描述:(可选项)是否开启消息提醒。(提醒:true|不提醒:false)
  • 默认值: true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true   //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateNotifyStateForUser({
    userId : '1002',
    notify : true
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

notifyForNewMsgForUser

判断是否需要消息通知

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

params

userId:

  • 类型:字符串
  • 描述:(可选项)目标用户ID。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true   //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.notifyForNewMsgForUser({
    userId : '1002'
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onChatRoomStatusChanged

聊天室在线状态变化的监听

onChatRoomStatusChanged(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    roomId : '',//聊天室id
    status : ,//聊天室在线状态:
        //0	正在进入
        //1	进入聊天室成功
        //2	进入聊天室失败
        //3	和聊天室失去链接
}

示例代码

var demo = api.require('nim');
demo.onChatRoomStatusChanged(function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onChatRoomKickOutEvent

被踢出聊天室的监听

onChatRoomKickOutEvent(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

用户加入聊天室

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

nickName:

  • 类型:字符串
  • 描述:(可选项)用户在聊天室中的呢称。

avatar:

  • 类型:字符串
  • 描述:(可选项)头像url。

extension:

  • 类型:json对象
  • 描述:(可选项)扩展字段,进入聊天室后展示用户信息的扩展字段,长度限制4K 。

notifyExtension:

  • 类型:json对象
  • 描述:(可选项)通知的扩展字段,进入聊天室通知消息扩展字段,长度限制1K(进入聊天室后,聊天室成员都会收到一条通知消息)。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true   //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

用户退出聊天室

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true   //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.exitChatRoom({
    roomId : '3002'
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getChatRoomHistoryMsg

获取聊天室历史消息

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

startTime:

  • 类型:Long型
  • 描述:(可选项)起始时间(单位毫秒)。
  • 默认值:0

startTime:

  • 类型:数字型
  • 描述:(可选项)消息条数。
  • 默认值:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

获取聊天室基本信息

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,   //布尔型 true|false
    message : {
        roomId :, //聊天室id
        name : , //聊天室名称
        creator:,//创建者id
        announcement:,//公告
        onLineUserCount:,//当前在线人数
        broadcastUrl:,//广播流url
        extention:,//扩展属性
    }
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.getChatRoomInfo({
    roomId : '3002'
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

getChatRoomMembers

获取聊天室成员

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

type:

  • 类型:数字型
  • 描述:(可选项)类别(0:聊天室在线的固定成员, 1: 聊天室临时成员, 2: 在线固定成员)。
  • 默认值:0

time:

  • 类型:Long型
  • 描述:(可选项)起始时间(单位毫秒) iOS无效。
  • 默认值:0

limit:

  • 类型:数字型
  • 描述:(可选项)条数, 最大100。
  • 默认值:10

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

批量获取指定成员在聊天室中的信息

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userIds:

  • 类型:数组
  • 描述:(必填项)用户id列表。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.getChatRoomMembersByIds({
    roomId : '3002',
    userIds : ['1001','1002']
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addUserToBlackList

加入/移出黑名单

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户的帐号。

isAdd:

  • 类型:布尔型
  • 描述:(可选项) 将用户加入黑名单.
  • 默认值:true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

加入用户到禁言名单/取消某用户的禁言

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户的帐号。

isMute:

  • 类型:布尔型
  • 描述:(可选项)加入用户到禁言名单/取消某用户的禁言
  • 默认值:true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

设置/取消管理员

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户的帐号。

isAdmin:

  • 类型:布尔型
  • 描述:(可选项)将用户设置/取消管理员.
  • 默认值:true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

设置/移除普通成员

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户的帐号。

isNormal:

  • 类型:布尔型
  • 描述:(可选项)将用户设置/移除普通成员.
  • 默认值:true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

从聊天室中移除某个用户

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

params

roomId:

  • 类型:字符串
  • 描述:(必填项)聊天室Id。

userId:

  • 类型:字符串
  • 描述:(必填项)用户的帐号。

reason:

  • 类型:字符串
  • 描述:(可选项)原因。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true  //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.kickMemberFromChatRoom({
    roomId : '3002',
    userIds : '1001',
    reason : '原因'
},function(ret,err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

sendMessageReceipt

发送已读回执

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)待撤回消息Id。

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。(仅iOS)

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。(仅iOS)
  • 默认值: 0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.sendMessageReceipt({
    messageId : '12312312313',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

onIMRecvMessageReceipt

接受已读回执

onIMRecvMessageReceipt(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  timestamp: 0,
  messageId : '',
  sessionId : ''
}

示例代码

var demo = api.require('nim');
demo.onIMRecvMessageReceipt(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

markAllMessagesReadInSession

未读数清零

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.markAllMessagesReadInSession({
    sessionId : '1002',
    sessionType : 0,
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateTeamAvatar

修改群头像

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

avatarUrl:

  • 类型:字符串
  • 描述:(必填项)群头像.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamAvatar({
    teamId : '64430396',
    teamName : '群组头像'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

updateUserNick

更新成员群昵称

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

userId:

  • 类型:字符串
  • 描述:(必填项)群成员ID.

newNick:

  • 类型:字符串
  • 描述:(必填项)新的群成员昵称.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateUserNick({
    teamId : '64430396',
    userId : '1231313',
    newNick : '昵称'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

updateMyTeamNick

修改自己的群昵称

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

newNick:

  • 类型:字符串
  • 描述:(必填项)新的群成员昵称.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateMyTeamNick({
    teamId : '64430396',
    newNick : '昵称'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

updateTeamCustomInfo

更新群自定义信息

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

clientCustomInfo:

  • 类型:字符串
  • 描述:(可选项)自定义信息.

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateTeamCustomInfo({
    teamId : '64430396',
    clientCustomInfo : '我自定义内容'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

updateMuteStateByUserId

群成员禁言

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

userId:

  • 类型:字符串
  • 描述:(必填项)群成员Id.

mute:

  • 类型:布尔型
  • 描述:(可选项)是否禁言.
  • 默认值:false

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    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

禁言群全体成员

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

mute:

  • 类型:布尔型
  • 描述:(可选项)是否禁言.
  • 默认值:false

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true //布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateMuteStateByAll({
    teamId : '64430396',
    mute : true
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

queryTeamMemberByUserId

查询群成员资料

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

params

teamId:

  • 类型:字符串
  • 描述:(必填项)群Id。

userId:

  • 类型:字符串
  • 描述:(必填项)群成员Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
    message : {
        teamId : ,//群ID
        userId:,//群成员ID
        invitor:,//邀请者,仅iOS支持, android不支持
        type:,//群成员类型,0:普通群员,1:群拥有者,2:群管理员,3:申请加入用户
        nickname:,//群昵称
    }
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.queryTeamMemberByUserId({
    teamId : '64430396',
    userId : '123123'
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

setSystemMessageStatus

设置系统通知状态(iOS不一定生效,暂时不清楚iOS接口方法)

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)系统消息Id。

messageStatus:

  • 类型:字符串
  • 描述:(必填项)消息状态(0:未处理状态 1:已通过验证 2:已拒绝 3:已忽略 4:已过期 5:开发者可自定义的扩展类型1 6:开发者可自定义的扩展类型2 7:开发者可自定义的扩展类型3 8:开发者可自定义的扩展类型4 9:开发者可自定义的扩展类型5)。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.setSystemMessageStatus({
    messageId : '1231231231',
    messageStatus : 1
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

deleteSystemMessage

删除一条系统通知

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)系统消息Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.deleteSystemMessage({
    messageId : '1231231231',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

setSystemMessageRead

设置单条系统通知为已读

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)系统消息Id。

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.setSystemMessageRead({
    messageId : '1231231231',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

revokeMessage

消息撤回

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)待撤回消息Id。

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。(仅iOS)

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。(仅iOS)
  • 默认值: 0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.revokeMessage({
    messageId : '1231231231',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

onIMRecvRevokeMessageNotification

监听消息撤回

onIMRecvRevokeMessageNotification(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
    message : {},//撤回消息内容
    fromUserId : '',//撤回消息发起者
    postscript : ''//撤回的附言
}

示例代码

var demo = api.require('nim');
demo.onIMRecvRevokeMessageNotification(function(ret){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

onIMLogin

登录状态监听

onIMLogin(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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

是否登录状态(同步接口)

isLogined()

##ret:

  • 类型:布尔型 true | false

示例代码

var demo = api.require('nim');
var ret = demo.isLogined();

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

isMyFriend

是否登录状态(同步接口)

isMyFriend({params})

params

account:

  • 类型:字符串
  • 描述:(必填项)待判断用户账号。

##ret:

  • 类型:布尔型 true | false

示例代码

var demo = api.require('nim');
var ret = demo.isMyFriend({account:'123123'});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

isMyTeam

是否在此群组(同步接口)

isMyTeam({params})

params

teamId:

  • 类型:字符串
  • 描述:(必填项)待判断群号。

##ret:

  • 类型:布尔型 true | false

示例代码

var demo = api.require('nim');
var ret = demo.isMyTeam({teamId:'123123'});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

deleteRecentSession

最近会话的删除

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.deleteRecentSession({
    sessionId : '1231231231',
    sessionType : 0
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

downloadAttachment

手动下载附件

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)待下载附件的消息Id。

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。(仅iOS)

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。(仅iOS)
  • 默认值: 0

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
    evenType : 'Start' // Start Progress Complete
    message : {},
    progress : 0.1,
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.downloadAttachment({
    messageId : '1231231231',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

abortDownloadAttachment

停止附件下载

abortDownloadAttachment(callback(ret))

callback(ret)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

示例代码

var demo = api.require('nim');
demo.abortDownloadAttachment();

可用性

iOS系统,Android系统

可提供的1.1.5及更高版本

enablePushService

开启或者关闭推送

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

params

enable:

  • 类型:布尔型
  • 描述:(必填项)开启或者关闭。
  • 默认值:true

callback(ret,err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    status : true,	//布尔型 true|false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.enablePushService({
    enable : true
},function(ret, err){
});

可用性

Android系统

可提供的1.1.5及更高版本

sendTips

发送提示消息

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

content

  • 类型:字符串
  • 描述:(必填项)提示消息内容。

ext:

  • 类型:JSON对象
  • 描述:(可选项)自定义扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
    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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

查询本地消息历史

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

limit

  • 类型:字符串
  • 描述:检索条数, 最大限制100条
  • 默认值: 100

messageId

  • 类型:字符串型
  • 描述:(可选项)消息记录ID

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

查询本地消息历史

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

limit

  • 类型:字符串
  • 描述:检索条数, 最大限制100条
  • 默认值: 100

messageId

  • 类型:字符串型
  • 描述:(可选项)消息记录ID

types

  • 类型:数组型
  • 描述:(可选项)消息类型数组(0:文本类型消息 1:图片类型消息 2:声音类型消息 3:视频类型消息 4:位置类型消息 5:通知类型消息 6:文件类型消息 10: 提醒类型消息)
  • 默认值:全部

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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:

  • 类型:JSON 对象
  • 内部字段:
{
    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

删除与某个对象的全部消息记录

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.clearChattingHistory({
    sessionId : '1002',
    sessionType : 0,
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

updateFriendFields

更新好友关系

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

params

userId:

  • 类型:字符串
  • 描述:(必填项)好友的userid。

alias

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

ext

  • 类型:字符串
  • 描述:(可选项)扩展

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.updateFriendFields({
    ......
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

clearServerHistory

清空点对点会话的服务端的消息。不会删除本地的消息记录(暂不支持群聊)

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

params

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。
  • 默认值: 0

removeRoam

  • 类型:布尔型
  • 描述:(可选项)是否一起删除漫游。
  • 默认值: true

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.clearServerHistory({
    sessionId : '1002',
    sessionType : 0,
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

deleteMsgSelf

删除本地某条消息,并同时删除服务端历史、漫游

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

params

messageId:

  • 类型:字符串
  • 描述:(必填项)待删除消息Id。

sessionId:

  • 类型:字符串
  • 描述:(必填项)单聊时聊天人的userid, 群聊时groupid, 聊天室的id。(仅iOS)

sessionType

  • 类型:数字型
  • 描述:(必填项)0-单聊,1-群聊, 2- 聊天室。(仅iOS)
  • 默认值: 0

ext

  • 类型:字符串
  • 描述:(可选项)扩展字段

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.deleteMsgSelf({
    messageId : '12312312313',
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addRtcEventListener

音视频事件监听

addRtcEventListener(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  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

设置本地视频预览

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

params

rect:

  • 类型:JSON 对象
  • 默认值:见内部字段
  • 描述:(可选项)浏览器窗口的位置和大小,设置margin后,在不同手机上面会保持与父页面的各方向边距一致,而中间区域会自动扩充。建议使用margin布局,可以完美适配带smartBar的手机。**(注意:当fixed设置false时,margin界面布局会异常)**
  • 内部字段:
{
    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:

  • 类型:字符串型
  • 描述:(可选项)插件所属 Frame 的名字,若不传则插件归属于当前 Window

fixed:

  • 类型:布尔型
  • 描述:(可选项)插件是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

mirror:

  • 类型:布尔型
  • 描述:(必填项)是否镜像(仅安卓有效)。
  • 默认值:false

scalingType:

  • 类型:数字型
  • 描述:(必填项)渲染模式:(0:SCALE_ASPECT_FIT 1:SCALE_ASPECT_FILL 2:SCALE_ASPECT_BALANCED)。

mirrorMode:

  • 类型:数字型
  • 描述:(必填项)镜像模式(仅iOS有效):(0:MirrorModeAuto 1:MirrorModeEnabled 2:MirrorModeDisabled)。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.addLocalVideo({
    .....
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

delLocalVideo

删除本地视频预览

delLocalVideo(callback(ret, err))

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.delLocalVideo({
    .....
},function(ret, err){
});

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

setLocalViewParam

设置本地视频预览参数

setLocalViewParam({params})

params

mirror:

  • 类型:布尔型
  • 描述:(必填项)是否镜像(仅安卓有效)。
  • 默认值:false

scalingType:

  • 类型:数字型
  • 描述:(必填项)渲染模式:(0:SCALE_ASPECT_FIT 1:SCALE_ASPECT_FILL 2:SCALE_ASPECT_BALANCED)。

mirrorMode:

  • 类型:数字型
  • 描述:(必填项)镜像模式(仅iOS有效):(0:MirrorModeAuto 1:MirrorModeEnabled 2:MirrorModeDisabled)。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.setLocalViewParam({
    .....
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

joinChannel

加入音视频房间

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

params

token:

  • 类型:字符串型
  • 描述:(必填项)token

channelName:

  • 类型:字符串型
  • 描述:(必填项)channelName

uid:

  • 类型:Long型
  • 描述:(必填项)uid

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

err:

  • 类型:JSON 对象
  • 内部字段:
{
    errorCode: -1,
    errorMessage : ''
}

示例代码

var demo = api.require('nim');
demo.joinChannel({
    .....
},function(ret, err){
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

addRemoteVideo

设置远程视频预览

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

params

rect:

  • 类型:JSON 对象
  • 默认值:见内部字段
  • 描述:(可选项)浏览器窗口的位置和大小,设置margin后,在不同手机上面会保持与父页面的各方向边距一致,而中间区域会自动扩充。建议使用margin布局,可以完美适配带smartBar的手机。**(注意:当fixed设置false时,margin界面布局会异常)**
  • 内部字段:
{
    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:

  • 类型:字符串型
  • 描述:(可选项)插件所属 Frame 的名字,若不传则插件归属于当前 Window

fixed:

  • 类型:布尔型
  • 描述:(可选项)插件是否随所属 Window 或 Frame 滚动
  • 默认值:true(不随之滚动)

uid:

  • 类型:Long型
  • 描述:(必填项)uid

mirror:

  • 类型:布尔型
  • 描述:(必填项)是否镜像(仅安卓有效)。
  • 默认值:false

scalingType:

  • 类型:数字型
  • 描述:(必填项)渲染模式:(0:SCALE_ASPECT_FIT 1:SCALE_ASPECT_FILL 2:SCALE_ASPECT_BALANCED)。

mirrorMode:

  • 类型:数字型
  • 描述:(必填项)镜像模式(仅iOS有效):(0:MirrorModeAuto 1:MirrorModeEnabled 2:MirrorModeDisabled)。

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.addRemoteVideo({
    .....
},function(ret, err){
});

可用性

iOS系统,Android系统

delRemoteVideo

移除远端视频预览

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

params

uid:

  • 类型:Long型
  • 描述:(必填项)uid

callback(ret, err)

ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
demo.delRemoteVideo({
    .....
},function(ret, err){
});

可用性

iOS系统,Android系统

setRemoteViewParam

设置远端视频预览参数

setRemoteViewParam({params})

params

uid:

  • 类型:Long型
  • 描述:(必填项)uid

mirror:

  • 类型:布尔型
  • 描述:(必填项)是否镜像(仅安卓有效)。
  • 默认值:false

scalingType:

  • 类型:数字型
  • 描述:(必填项)渲染模式:(0:SCALE_ASPECT_FIT 1:SCALE_ASPECT_FILL 2:SCALE_ASPECT_BALANCED)。

mirrorMode:

  • 类型:数字型
  • 描述:(必填项)镜像模式(仅iOS有效):(0:MirrorModeAuto 1:MirrorModeEnabled 2:MirrorModeDisabled)。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.setRemoteViewParam({
    .....
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

subscribeRemoteVideoStream

订阅或取消订阅指定远端用户的视频流。

subscribeRemoteVideoStream({params})

params

uid:

  • 类型:Long型
  • 描述:(必填项)uid

subscribe:

  • 类型:布尔型
  • 描述:(必填项)是否订阅。

streamType:

  • 类型:数字型
  • 描述:(必填项)模式:(0:High 1:Low )。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.subscribeRemoteVideoStream({
    .....
});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

leaveChannel

离开房间,即挂断或退出通话。

leaveChannel()

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.leaveChannel();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

switchCamera

切换前置/后置摄像头。

switchCamera()

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.switchCamera();

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

muteLocalVideoStream

取消或恢复发布本地视频流。 成功调用该方法后,远端会触发 onUserVideoMute 回调。

muteLocalVideoStream({params})

params

muted:

  • 类型:布尔型
  • 描述:(必填项)muted
  • 默认值:false

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.muteLocalVideoStream({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

muteLocalAudioStream

开关本地音频发送。该方法用于允许或禁止上行本地音频流。

muteLocalAudioStream({params})

params

muted:

  • 类型:布尔型
  • 描述:(必填项)muted
  • 默认值:false

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.muteLocalAudioStream({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

subscribeRemoteAudioStream

取消或恢复订阅指定远端用户音频流。加入房间时,默认订阅所有远端用户的音频流,您可以通过此方法取消或恢复订阅指定远端用户的音频流。

subscribeRemoteAudioStream({params})

params

uid:

  • 类型:Long型
  • 描述:(必填项)uid

subscribe:

  • 类型:布尔型
  • 描述:(必填项)是否订阅。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.subscribeRemoteAudioStream({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

subscribeAllRemoteAudioStreams

取消或恢复订阅所有远端用户音频流。

subscribeAllRemoteAudioStreams({params})

params

subscribe:

  • 类型:布尔型
  • 描述:(必填项)是否订阅。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.subscribeAllRemoteAudioStreams({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

enableLocalAudio

开启/关闭本地音频采集。

enableLocalAudio({params})

params

enabled:

  • 类型:布尔型
  • 描述:(必填项)是否开起本地音频采集。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.enableLocalAudio({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

enableLocalVideo

是否开启本地视频采集。

enableLocalVideo({params})

params

enabled:

  • 类型:布尔型
  • 描述:(必填项)是否开起本地视频采集。

##ret:

  • 类型:JSON 对象
  • 内部字段:
{
  status: true,      //布尔型;true||false
}

示例代码

var demo = api.require('nim');
var ret = demo.enableLocalVideo({...});

可用性

iOS系统,Android系统

可提供的1.0.0及更高版本

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