UIYunxinIM
用户资料
发送消息
会话、消息
好友
通知
群组
UI
附录
概述
本模块封装了网易云信 IM SDK,网易云信 IM 即时通讯服务基于网易18年的 IM 技术积累,致力于打造最稳定的即时通讯云平台。 IM即时通讯服务提供了一整套即时通讯基础能力,通过该平台服务就可以将即时通讯、实时网络能力快速集成至企业自身应用中。基于发布的 yunxinIM 模块,在登录类接口基础上,扩展添加了 UI 类接口,适用于对 UI 设计要求不高的项目。可直接调用相关接口弹出聊天对话页面,真正实现了敏捷开发。
使用前,请先到网易云信官网进行注册。
注意:
UIYunxinIM 是针对对UI和功能需求不那么高的开发者推出的模块。如果你的项目对UI和功能要求很深,请在充分调研本模块是否满足需求后再决定使用。
使用此模块之前需先配置 config.xml 文件,方法如下
- 配置示例:
<feature name="UIYunxinIM">
<param name="appKey" value=""/>
<param name="apnsCername" value="true"/>
<param name="pkCername" value=""/>
<param name="enabledHttpsForInfo" value=""/>
<param name="shouldSyncUnreadCount" value="11"/>
<param name="shouldCountTeam" value=""/>
<param name="enabledHttpsForMessage" value=""/>
<param name="maxAutoLoginRetryTimes" value="1"/>
<param name="teamReceiptEnabled" value=""/>
<param name="asyncLoadRecentSessionEnabled" value="fasle"/>
</feature>
字段描述:
appKey:云信 AppKey。 注册后,可在网易云控制台获取。
apnsCername:云信 Apns 推送证书名。
pkCername:云信 PushKit 推送证书名。
enabledHttpsForInfo:(可选项)针对用户信息开启 https 支持,设置成 true 的情况下,我们认为用户头像,群头像,聊天室类用户头像等信息都是默认托管在云信上,所以 SDK 会针对他们自动开启 https 支持。 但如果你需要将这些信息都托管在自己的服务器上,需要设置这个参数为 false,避免 SDK 自动将你的 http url 自动转换为 https url;默认:true
shouldSyncUnreadCount:(可选项)是否需要多端同步未读数,设置成 true 的情况下,同个账号多端(PC 和 移动端等)将同步未读计数;默认:false
shouldCountTeam:(可选项)是否将群通知计入未读,设置成 true 的情况下,收到的群通知也会计入未读数;默认:false
enabledHttpsForMessage:(可选项)针对消息内容开启 https 支持,设置成 true 的情况下,我们认为消息,包括图片,视频,音频信息都是默认托管在云信上,所以 SDK 会针对他们自动开启 https 支持。但如果你需要将这些信息都托管在自己的服务器上,需要设置这个参数为 false,避免 SDK 自动将你的 http url 自动转换为 https url。 (强烈不建议),需要注意的是即时设置了这个属性,通过 iOS SDK 发出去的消息 URL 仍是 https 的,设置这个值只影响接收到的消息 URL 格式转换;默认:true
maxAutoLoginRetryTimes:(可选项)自动登录重试次数,默认为 0。即默认情况下,自动登录将无限重试。设置成大于 0 的值后,在没有登录成功前,自动登录将重试最多 maxAutoLoginRetryTimes 次,如果失败,则抛出错误;默认:0
teamReceiptEnabled:(可选项)是否开启群回执功能;默认:false
asyncLoadRecentSessionEnabled:(可选项)是否开启异步读取最近会话,对于最近会话比较多的用户,初始读取数据库时,可能影响到启动速度,用户可以选择开启该选项,开启异步读取最近会话,allRecentSessions会优先返回一部分最近会话,等到全部读取完成时,通过回调通知用户刷新UI;默认:false
关于UI头像:用户利用upload接口上传后即可显示
注意:本模块 iOS 平台上最低适配系统版本为 iOS 9.0
模块接口
login
登陆
login({params},callback(ret))
parameter
account
- 类型:字符串类型
- 描述:帐号
token
- 类型:字符串类型
- 描述:令牌 (在后台绑定的登录token)
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;true/false 是否成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg:'' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.login({
account:'',
token:''
}, function(ret,err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
autoLogin
自动登陆,启动APP如果已经保存了用户帐号和令牌,建议使用这个登录方式
autoLogin({params})
parameter
account
- 类型:字符串类型
- 描述:帐号
token
- 类型:字符串类型
- 描述:令牌 (在后台绑定的登录token)
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.autoLogin({
account:'',
token:''
});
可用性
iOS系统
可提供的1.0.0及更高版本
logout
退出登陆
logout({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;true/false 是否成功
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg:'' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.logout(function(ret,err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
isLogined
当前登录状态
isLogined({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status:true //布尔类型;true/false 是否登陆
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.isLogined(function(ret,err) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
currentAccount
获取当前登录帐号,当前登录帐号,如果没有登录成功,这个地方会返回空字符串''
currentAccount(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
userID:'' //字符串类型;当前登录帐号userID
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.currentAccount(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
addAccountListen
账号相关监听
addAccountListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: //字符串类型;账号事件类型
//kickout(被踢(服务器/其他端))
//login(登录)
//autoLoginFailed(自动登录失败)
//multiLoginClientsChanged(多端登录发生变化)
//teamUsersSyncFinished(群用户同步完成通知)
//superTeamUsersSyncFinished(超大群用户同步完成通知)
reasonCode:0, //数字类型;被踢原因
//1:被另外一个客户端踢下线 (互斥客户端一端登录挤掉上一个登录中的客户端)
//2:被服务器踢下线
//3:被另外一个客户端手动选择踢下线
clientType:0, //数字类型;客户端类型
//0:未知类型
//1:Android
//2:iOS
//4:PC
//8:WP
//16:WEB
//32:REST API
//64:macOS
reasonDesc:'', //字符串类型;原因描述
step:0, //数字类型;登录步骤
//1:连接服务器
//2:连接服务器成功
//3:连接服务器失败
//4:登录
//5:登录成功
//6:登录失败
//7:开始同步
//8:同步完成
//9:连接断开
//10:网络切换,这个并不是登录步骤的一种,但是UI有可能需要通过这个状态进行UI展现
code:0, //数字类型;自动登录失败错误码
msg:'', //字符串类型;自动登录失败错误原因
type:0, //数字类型;多端登陆的状态
//1:目前已经有其他端登陆
//2:其他端上线
//3:其他端下线
success:true //布尔类型;群用户同步、超大群用户同步是否成功
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addAccountListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
localUserInfo
从本地获取用户资料
需要将用户信息交给云信托管,且数据已经正常缓存到本地,此接口才有效。
用户资料除自己之外,不保证其他用户资料实时更新
其他用户资料更新的时机为:
1.调用 fetchUserInfos 方法刷新用户
2.收到此用户发来消息
3.程序再次启动,此时会同步部分好友信息
localUserInfo({params}, callback(ret))
parameter
userId
- 类型:字符串类型
- 描述:用户id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
user:{} //json对象;用户信息;详情参考附录:用户信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.localUserInfo({
userId:''
},function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
fetchUserInfos
从云信服务器批量获取用户资料,需要将用户信息交给云信托管,此接口才有效。调用此接口,不会触发 onUserInfoChanged 回调,该接口会将获取到的用户信息缓存在本地,所以需要避免此接口的滥调,导致存储过多无用数据到本地而撑爆缓存:如在聊天室请求请求每个聊天室用户数据将造成缓存过大而影响程序性能,本接口一次最多支持 150 个用户信息获取
fetchUserInfos({params}, callback(ret,err))
parameter
users
- 类型:字符串数组
- 描述:用户ID列表
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
users:[] //json数组;用户信息列表;详情参考附录:用户信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.fetchUserInfos({
users:[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
updateMyUserInfo
修改自己的用户资料
updateMyUserInfo({params}, callback(ret,err))
parameter
userInfo
- 类型:json对象
- 描述:用户资料
- 内部字段:
{
nickName: '', //字符串类型;用户昵称
avatar: '', //字符串类型;用户头像
sign: '', //字符串类型;用户签名
gender: 0, //数字类型;用户性别,0:未知性别,1:性别男,2:性别女
email: '', //字符串类型;用户邮箱。请使用合法邮箱
birth: '', //字符串类型;用户生日。具体格式为yyyy-MM-dd
mobile: '', //字符串类型;用户手机号。请使用合法手机号
ext: '' //字符串类型;扩展字段
}
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateMyUserInfo({
userInfo:{}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
upload
上传头像
upload({params}, callback(ret,err))
parameter
filepath
- 类型:字符串
- 描述:上传文件路径,支持fs、widget
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
urlString:'', //字符串类型;上传后得到的URL,失败时为空
progress:0 //数字类型;上传进度,上传过程中返回
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.upload({
filepath:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
download
文件资源下载
download({params}, callback(ret,err))
parameter
urlString
- 类型:字符串
- 描述:下载的URL
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.download({
urlString:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
cancelTask
取消上传/下载任务
cancelTask({params})
parameter
filepath
- 类型:字符串
- 描述:取消上传/下载任务的文件路径
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.cancelTask({
filepath:''
});
可用性
iOS系统
可提供的1.0.0及更高版本
sendText
发送文本消息
sendText({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
text:
- 类型:字符串
- 描述:发送的消息
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendText({
sessionId:'',
chatType:0,
text:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendImage
发送图片消息
sendImage({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
path:
- 类型:字符串
- 描述:要发送的图片的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:(可选项)文件展示名
compressQuality:
- 类型:数字
- 描述:(可选项)压缩参数,可传入0.0-1.0的值,如果传入非法参数,则按照 0.5 进行压缩
- 默认:0.5
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendImage({
sessionId:'',
chatType:0,
path:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendVoice
发送语音消息
sendVoice({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
path:
- 类型:字符串
- 描述:要发送的语音的路径,要求本地路径(fs://、widget://)
duration:
- 类型:数字
- 描述:(可选项)语音时长,毫秒为单位
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendVoice({
sessionId:'',
chatType:0,
path:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendVideo
发送视频消息
sendVideo({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
path:
- 类型:字符串
- 描述:要发送的视频的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:视频展示名
duration:
- 类型:数字
- 描述:(可选项)视频时长,毫秒为单位
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendVideo({
sessionId:'',
chatType:0,
path:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendFile
发送文件消息
sendFile({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
path:
- 类型:字符串
- 描述:要发送的文件的路径,要求本地路径(fs://、widget://)
displayName:
- 类型:字符串
- 描述:文件显示名
extension:
- 类型:字符串
- 描述:文件拓展名
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendFile({
sessionId:'',
chatType:0,
path:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendLocation
发送位置消息
sendLocation({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
address:
- 类型:字符串
- 描述:要发送的地址
latitude:
- 类型:数字
- 描述:纬度
longitude:
- 类型:数字
- 描述:经度
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendLocation({
sessionId:'',
chatType:0,
path:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendTip
发送提示消息
sendTip({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
text:
- 类型:字符串
- 描述:要发送的消息
from:
- 类型:字符串
- 描述:(可选项)消息来源
- 默认:当前登录账号
ext:
- 类型:JSON 对象
- 描述:(可选项)扩展信息,需要保证可以转换为 JSON,长度限制 1K
callback(ret, err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否发送成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendTip({
sessionId:'',
chatType:0,
text:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
cancelSendingMessage
消息取消发送,只能取消正在发送中的消息(如大文件发送),通常配合异步发送消息接口,接口返回值成功时消息的状态为发送失败状态
cancelSendingMessage({params},callback(ret))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.cancelSendingMessage({
sessionId:'',
chatType:0,
messageId:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
resendMessage
消息重发
resendMessage({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.resendMessage({
sessionId:'',
chatType:0,
messageId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
forwardMessage
消息转发,除了通知消息之外,其他类型消息均支持转发给其他会话
forwardMessage({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
toSessionId:
- 类型:字符串
- 描述:转发的会话ID
toChatType:
- 类型:数字类型
- 描述:(可选项)转发的会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.forwardMessage({
sessionId:'',
chatType:0,
messageId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
revokeMessage
消息撤回,允许用户撤回一定时间内发送过的消息,允许撤回时长默认2分钟,可在网易云信控制台配置
revokeMessage({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.revokeMessage({
sessionId:'',
chatType:0,
messageId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendMessageReceipt
单聊消息已读回执,在会话界面中调用发送已读回执的接口并传入当前会话的最后一条消息,即表示这之前的消息本方都已读
sendMessageReceipt({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:当前会话的最后一条消息Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendMessageReceipt({
sessionId:'',
chatType:0,
messageId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
sendTeamMessageReceipts
群聊消息已读回执,群消息已读回执功能,需要联系商务顾问申请开通后才能使用。同时,使用该功能时需要将群成员控制在100人以内。需要config配置teamReceiptEnabled为true
sendTeamMessageReceipts({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageIds:
- 类型:字符串数组
- 描述:条消息Id数组
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.sendTeamMessageReceipts({
sessionId:'',
chatType:0,
messageIds:['']
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addMessageListen
消息相关监听
addAccountListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: //字符串类型;账号事件类型
//willSendMessage(即将发送消息回调)
//uploadAttachmentSuccess(上传资源文件成功的回调)
//sendMessageProgress(发送消息进度回调)
//sendMessageFinish(发送消息完成回调)
//onRecvMessages(收到消息回调)
//onRecvMessageReceipts(收到消息回执)
//onRecvRevokeMessageNotification(收到消息被撤回的通知)
//fetchMessageAttachmentProgress(收取消息附件回调)
//fetchMessageAttachmentFinish(收取消息附件完成回调)
//pushMessage(推送消息)
message:{}, //json对象,消息;详情参考附录:消息内容
messages:[{}], //json数组对象,消息;详情参考附录:消息内容
urlString:'', //字符串类型;当前消息资源获得的 url 地址
progress:0, //数字类型;发送消息进度、收取消息附件进度
success:true, //布尔类型;收取消息附件、发送消息是否成功
code:0, //数字类型;错误码;收取消息附件完成、发送消息完成并出现错误success为false时返回
msg:'', //字符串类型;错误原因;收取消息附件完成、发送消息完成并出现错误success为false时返回
receipts:[{ //json数组对象;收到的消息回执回执
session:{}, /json对象;会话;详情参考附录:会话信息
timestamp:0, //数字类型;时间戳
messageId:'' //字符串类型;消息 Id
}],
notification:{ //json对象;被撤回的消息信息
notificationType:0, //数字类型;撤回消息类型
//取值范围:
//7:点对点消息撤回通知
//8:群消息撤回通知
//12:超大群撤回通知
//13:点对点消息单向撤回
//14:群消息单向撤回类型
fromUserId:'' //字符串类型;撤回消息发起者
messageFromUserId:'',//字符串类型;消息的发送者,表示撤回的这条消息是谁发的
session:{}, // 撤回消息所属会话;详情参考附录:会话信息
timestamp:0, //数字类型;撤回消息时间点,这里的时间点指的是被撤回的那条消息到底服务器的时间,而不是撤回指令到达服务器的时间点
message:{}, //撤回消息内容;详情参考附录:消息内容
isRoaming:true, //布尔类型;撤回操作是否属于漫游消息
postscript:'' //字符串类型;撤回的附言
},
pushMessage:{} //json对象,推送消息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addMessageListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
allRecentSessions
获取所有最近会话
allRecentSessions(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
recentSessions:[{}] //json数组类型;最近会话列表;详情参考附录:最近会话信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.allRecentSessions(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
creatRecentSession
创建最近会话
creatRecentSession({params})
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.creatRecentSession({
sessionId:'',
chatType:0
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteRecentSession
删除最近会话
deleteRecentSession({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteRecentSession({
sessionId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateRecentLocalExt
更新最近会话的本地扩展
updateRecentLocalExt({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateRecentLocalExt({
sessionId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
allUnreadCount
获取会话未读消息数
allUnreadCount(callback(ret))
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
unreadCount:0 //数字类型;未读系统消息数
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.allUnreadCount(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
markAllMessagesReadInSession
设置一个会话里所有消息置为已读
markAllMessagesReadInSession({params},callback(ret,err))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.markAllMessagesReadInSession({
sessionId:'',
chatType:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteRemoteSessions
删除服务器端最近会话
deleteRemoteSessions({params},callback(ret,err))
params
sessions:
- 类型:json数组
- 描述:会话列表
- 内部字段:
[{
sessionId: '', //字符串类型;会话ID
chatType:0 //数字类型;会话类型
//取值范围:
//0:单聊
//1:群组
//2:聊天室
//3:云商服
//5:超大群
}]
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteRemoteSessions({
sessions:[{}]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
messagesInSession
从本地db读取一个会话里某条消息之前的若干条的消息
messagesInSession({params},callback(ret))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
messages:[{}], //json数组对象,消息;详情参考附录:消息内容
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.messagesInSession({
sessionId:'',
chatType:0,
messageId:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
messagesInSessionWithMessageIds
根据消息Id获取消息
messagesInSessionWithMessageIds({params},callback(ret))
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageIds:
- 类型:字符串数组
- 描述:消息Id数组
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
messages:[{}], //json数组对象,消息;详情参考附录:消息内容
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.messagesInSessionWithMessageIds({
sessionId:'',
chatType:0,
messageIds:['']
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteMessage
删除某条消息
deleteMessage({params})
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
messageId:
- 类型:字符串
- 描述:消息Id
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteMessage({
sessionId:'',
chatType:0,
messageId:''
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteAllmessagesInSession
删除某个会话的所有消息
deleteAllmessagesInSession({params})
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
removeSession:
- 类型:布尔
- 描述:(可选项)是否移除对应最近会话,设置为 true 时将同时删除最近会话信息
- 默认:false
removeTable:
- 类型:布尔
- 描述:(可选项)是否删除消息表,默认情况下云信采用标记的方式进行消息删除,如果设置为 true,将一并移除对应的消息表,进而减少消息表数量,加快 I/O
- 默认:false
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteAllmessagesInSession({
sessionId:'',
chatType:0
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteAllMessages
删除所有会话消息
deleteAllMessages({params})
params
removeSession:
- 类型:布尔
- 描述:(可选项)是否移除对应最近会话,设置为 true 时将同时删除最近会话信息
- 默认:false
removeTable:
- 类型:布尔
- 描述:(可选项)是否删除消息表,默认情况下云信采用标记的方式进行消息删除,如果设置为 true,将一并移除对应的消息表,进而减少消息表数量,加快 I/O
- 默认:false
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteAllMessages({
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addSessionListen
会话相关监听
addSessionListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: //字符串类型;账号事件类型
//didLoadAllRecentSession(所有最近会话读取完成。设置config中的asyncLoadRecentSessionEnabled属性为true时,且本地数目大于1000条时,此回调会执行。该回调执行表示最近会话全部加载完毕可以通过allRecentSessions来取全部对话)
//didAddRecentSession(增加最近会话的回调,当新增一条消息,并且本地不存在该消息所属的会话时,会触发此回调)
//didUpdateRecentSession(最近会话修改的回调,触发条件包括: 1.当新增一条消息,并且本地存在该消息所属的会话。2.所属会话的未读清零。3.所属会话的最后一条消息的内容发送变化。(例如成功发送后,修正发送时间为服务器时间)。4.删除消息,并且删除的消息为当前会话的最后一条消息)
//didRemoveRecentSession(删除最近会话的回调调)
//messagesDeletedInSession(单个会话里所有消息被删除的回调)
//allMessagesDeleted(所有消息被删除的回调)
//allMessagesClearedInSession(单个会话所有消息在本地和服务端都被清空)
//allMessagesRead(所有消息已读的回调)
//didServerSessionUpdated(会话服务,会话更新)
//onRecvMessageDeleted(消息单向删除通知)
//onRecvIncompleteSessionInfos(未漫游完整会话列表回调)
recentSession:{}, //最近会话;详情参考附录:最近会话信息
session:{}, //会话;详情参考附录:会话信息
message:{}, //json对象,消息;详情参考附录:消息内容
totalUnreadCount:0 //数字类型;目前总未读数
step:0, //数字类型;清空会话消息完成时状态;0:本地,1:服务器,3:服务器错误
sessions:[{ //json数组;未漫游完整的会话信息列表
session:{}, //会话;详情参考附录:会话信息
from:'', //字符串类型;发送方
timestamp:0, //数字类型;消息时间戳(单位:s)
serverId:'', //字符串类型;消息服务端ID
}]
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addSessionListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
myFriends
获取好友列表
myFriends(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
users:[{}] //json数组类型;用户信息列表;详情参考附录:用户信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.myFriends(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
requestFriend
处理好友关系
requestFriend({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:目标用户ID
operation:
- 类型:数字
- 描述:(可选项)操作类型
- 默认:2
- 取值范围:
- 1:添加好友,直接添加为好友,无需验证
- 2:添加好友,请求添加好友
- 3:添加好友,通过添加好友请求
- 4:添加好友,拒绝添加好友请求
message:
- 类型:字符串
- 描述:附言
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.requestFriend({
userId:'',
message:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteFriend
删除好友
deleteFriend({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:好友Id
removeAlias:
- 类型:布尔
- 描述:(可选项)是否同时删除备注
- 默认:true
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteFriend({
userId:'',
removeAlias:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
isMyFriend
判断是否是我的好友
isMyFriend({params},callback(ret))
params
userId:
- 类型:字符串
- 描述:用户Id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isFriend: true, //布尔类型;是否是我的好友,true|false
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.isMyFriend({
userId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
myBlackList
获取黑名单中的用户列表
myBlackList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
blackUsers:[{}] //json数组类型;黑名单中的用户信息列表;详情参考附录:用户信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.myBlackList(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addToBlackList
添加用户到黑名单
addToBlackList({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:用户Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addToBlackList({
userId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
removeFromBlackList
将用户从黑名单移除
removeFromBlackList({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:用户Id
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.removeFromBlackList({
userId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
isUserInBlackList
判断用户是否已被拉黑
isUserInBlackList({params},callback(ret))
params
userId:
- 类型:字符串
- 描述:用户Id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isBlack: true, //布尔类型;是否已被拉黑,true|false
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.isUserInBlackList({
userId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
myMuteUserList
获取免打扰列表
myMuteUserList(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
muteUsers:[{}] //json数组类型;免打扰的用户信息列表;详情参考附录:用户信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.myMuteUserList(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
setMute
设置免打扰
setMute({params},callback(ret,err))
params
userId:
- 类型:字符串
- 描述:用户Id
isNotify:
- 类型:布尔
- 描述:(可选项)是否免打扰
- 默认:true
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.setMute({
userId:'',
isNotify:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
isMute
判断是否免打扰
isMute({params},callback(ret))
params
userId:
- 类型:字符串
- 描述:用户Id
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isMute: true, //布尔类型;是否免打扰,true|false
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.isMute({
userId:''
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
searchUser
用户检索
searchUser({params},callback(ret,err))
params
searchContent:
- 类型:字符串
- 描述:搜索文本
ignoreingCase:
- 类型:布尔
- 描述:(可选项)忽略大小写
- 默认:true
searchRange:
- 类型:数字
- 描述:(可选项)搜索文本的搜索范围
- 默认:0
- 取值范围:
- 0:在好友中查询
- 1:在所有人中查询
searchContentOption:
- 类型:数字
- 描述:(可选项)搜索文本的搜索范围
- 默认:3
- 取值范围:
- 0:匹配UserId
- 1:匹配备注名(只有好友支持备注名匹配)
- 2:匹配昵称
- 3:匹配全部
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
users:[{}] //json数组类型;用户信息列表;详情参考附录:用户信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.searchUser({
searchContent:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addFriendListen
好友相关监听
addFriendListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: //字符串类型;账号事件类型
//onFriendChanged(好友状态发生变化 (在线))
//onBlackListChanged(黑名单列表发生变化 (在线))
//onMuteListChanged(静音列表发生变化 (在线))
//onUserInfoChanged(用户个人信息发生变化 (在线),出于性能和上层 APP 处理难易度的考虑,本地调用批量接口获取用户信息时不触发当前回调)
user:{}, //用户;详情参考附录:用户信息;好友状态发生变化、用户个人信息发生变化时返回
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addFriendListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
fetchSystemNotifications
获取本地存储的系统通知(本接口配合limit参数采取分页获取)
fetchSystemNotifications({params},callback(ret))
params
limit:
- 类型:数字
- 描述:最大获取数
- 默认:3
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
notifications:[{ //josn数组类型;系统通知信息
notificationId:, //数字类型;通知 ID
type:, //数字类型;通知类型
//取值范围:
//0:申请入群
//1:拒绝入群
//2:邀请入群
//3:拒绝入群邀请
//5:添加好友
//15:申请入超大群
//16:拒绝入超大群
//17:邀请入超大群
//18:拒绝入超大群邀请
timestamp:, //数字类型;时间戳
sourceID:'', //字符串类型;操作者
targetID:'', //字符串类型;目标ID,群ID或者是用户ID
postscript:'', //字符串类型;附言ID
read:true, //布尔类型;是否已读
handleStatus:, //数字类型;消息处理状态
notifyExt: //字符串类型;系统通知下发的自定义扩展信息
}]
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.fetchSystemNotifications({
limit:3
},function(ret,err) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
allNotificationsUnreadCount
获取未读系统消息数
allNotificationsUnreadCount(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
unreadCount:0 //数字类型;未读系统消息数
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.allNotificationsUnreadCount(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
markAllNotificationsAsRead
标记所有系统消息为已读
markAllNotificationsAsRead()
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.markAllNotificationsAsRead();
可用性
iOS系统
可提供的 1.0.0 及更高版本
deleteAllNotifications
删除所有系统消息
deleteAllNotifications()
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.deleteAllNotifications();
可用性
iOS系统
可提供的 1.0.0 及更高版本
addNotificationListen
通知相关监听
addNotificationListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType: //字符串类型;账号事件类型
//onReceiveSystemNotification(收到系统通知回调)
//onSystemNotificationCountChanged(系统通知数量变化)
//onReceiveCustomSystemNotification(收到自定义通知回调,这个通知是由开发者服务端/客户端发出,由我们的服务器进行透传的通知,SDK 不负责这个信息的存储,如果需要上层需要存储,需要在这个方法返回前进行存储)
notification:{ //josn对象类型;系统通知信息
notificationId:, //数字类型;通知 ID
type:, //数字类型;通知类型
//取值范围:
//0:申请入群
//1:拒绝入群
//2:邀请入群
//3:拒绝入群邀请
//5:添加好友
//15:申请入超大群
//16:拒绝入超大群
//17:邀请入超大群
//18:拒绝入超大群邀请
timestamp:, //数字类型;时间戳
sourceID:'', //字符串类型;操作者
targetID:'', //字符串类型;目标ID,群ID或者是用户ID
postscript:'', //字符串类型;附言ID
read:true, //布尔类型;是否已读
handleStatus:, //数字类型;消息处理状态
notifyExt: //字符串类型;系统通知下发的自定义扩展信息
},
unreadCount:0, //数字类型;总系统通知未读数目
systemNotification:{//josn对象类型;自定义通知信息
notificationId:, //数字类型;通知 ID
timestamp:, //数字类型;时间戳
sender:'', //字符串类型;通知发起者id
receiver:'', //字符串类型;通知接受者id
content:'', //字符串类型;透传的消息体内容
receiverType:0, //数字类型;通知接受者类型
//取值范围:
//0:点对点
//1:群组
//2:聊天室
//3:云商服
//5:超大群
}
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addNotificationListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
createTeam
创建群组
createTeam({params},callback(ret,err))
params
users:
- 类型:字符串数组
- 描述:用户ID列表
option:
- 类型:JSON 对象
- 描述:创建群选项
- 内部字段:
{
name:'', //字符串类型;群名
type:0, //数字类型;群类型;默认:0:普通群
//取值范围:
//0:普通群
//1:高级群
//2:超大群
intro:'', //字符串类型;群简介
announcement:'', //字符串类型;群公告
clientCustomInfo:'', //字符串类型;客户端自定义信息
postscript:'', //字符串类型;邀请他人的附言,高级群有效,普通群无需附言
joinMode:0, //数字类型;群验证模式,只有高级群有效;默认:0:允许所有人加入
//取值范围:
//0:允许所有人加入
//1:需要验证
//2:不允许任何人加入
inviteMode:0, //数字类型;群邀请权限,只有高级群有效;默认:0:只有管理员/群主可以邀请他人入群
//取值范围:
//0:只有管理员/群主可以邀请他人入群
//1:所有人可以邀请其他人入群
beInviteMode:0, //数字类型;被邀请模式,只有高级群有效;默认:0:需要被邀请方同意
//取值范围:
//0:需要被邀请方同意
//1:不需要被邀请方同意
updateInfoMode:0, //数字类型;修改群信息权限,只有高级群有效;默认:0:只有管理员/群主可以修改
//取值范围:
//0:只有管理员/群主可以修改
//1:所有人可以修改
updateClientCustomMode:0,//数字类型;修改群客户端自定义字段权限。只有高级群有效;默认:0:只有管理员/群主可以修改
//取值范围:
//0:只有管理员/群主可以修改
//1:所有人可以修改
maxMember:0 //数字类型;群最大人数上限,默认为0,表示使用默认人数上限
}
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
teamId:'', //字符串类型;群组ID
failedUserIds:[] //字符串数组;邀请失败的群成员ID
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.createTeam({
users:[],
option:{}
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
allMyTeams
从本地获取所有群组
allMyTeams({callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
teams:[] //json数组;本地获取所有群组信息;详情参考附录:群组信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.allMyTeams(function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
dismissTeam
解散群组
dismissTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.dismissTeam({
teamId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
applyToTeam
申请加入群组
applyToTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
message:
- 类型:字符串
- 描述:(可选项)申请消息
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
applyStatus:0 //数字类型;申请入群状态
//取值范围:
//0:无效状态
//1:已经在群里
//2:申请等待通过
}
err:
- 类型:JSON 对象
- 内部字段:
{
code: , //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.applyToTeam({
teamId:'',
message:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
passApplyToTeam
通过申请(仅限高级群)
passApplyToTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
userId:
- 类型:字符串
- 描述:申请的用户 ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
applyStatus:0 //数字类型;申请入群状态
//取值范围:
//0:无效状态
//1:已经在群里
//2:申请等待通过
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.passApplyToTeam({
teamId:'',
userId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
rejectApplyToTeam
拒绝申请(仅限高级群)
rejectApplyToTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
userId:
- 类型:字符串
- 描述:申请的用户 ID
reason:
- 类型:字符串
- 描述:(可选项)拒绝理由
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.rejectApplyToTeam({
teamId:'',
userId:'',
reason:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
invitationToTeam
邀请加入群组
invitationToTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
users:
- 类型:字符串数组
- 描述:用户ID列表
postscript:
- 类型:字符串
- 描述:(可选项)邀请附言
attach:
- 类型:字符串
- 描述:(可选项)扩展消息
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
members:[] //json数组;成功的群成员列表,详情参考附录:群成员信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.invitationToTeam({
teamId:'',
users:[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 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 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.acceptInviteWithTeam({
teamId:'',
invitorId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
rejectInviteWithTeam
拒绝入群邀请(仅限高级群)
rejectInviteWithTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
invitorId:
- 类型:字符串
- 描述:邀请者 ID
reason:
- 类型:字符串
- 描述:(可选项)拒绝原因
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.rejectInviteWithTeam({
teamId:'',
invitorId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
kickUsersFromTeam
从群组内移除成员
kickUsersFromTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
users:
- 类型:字符串
- 描述:需要移除的用户ID列表
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.kickUsersFromTeam({
teamId:'',
users:[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
quitTeam
退出群组
quitTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.quitTeam({
teamId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
fetchTeamMembers
获取群组成员,绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略,考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。 同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 onUserInfoChanged 回调
fetchTeamMembers({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
members:[] //json数组;成功的群成员列表,详情参考附录:群成员信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.fetchTeamMembers({
teamId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
teamMember
获取单个群成员信息,返回本地缓存的群成员信息,如果本地没有相应数据则返回空
teamMember({params},callback(ret))
params
teamId:
- 类型:字符串
- 描述:群组ID
userId:
- 类型:字符串
- 描述:用户ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
member:{} //json对象;群成员信息,详情参考附录:群成员信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.teamMember({
teamId:'',
userId:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateUserNick
更新成员群昵称
updateUserNick({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
userId:
- 类型:字符串
- 描述:群成员ID
newNick:
- 类型:字符串
- 描述:新的群成员昵称
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateUserNick({
teamId:'',
userId:'',
newNick:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
isMyTeam
根据群组ID判断是否是我所在的群
isMyTeam({params},callback(ret))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
isMyTeam:true //布尔类型;是否是我所在的群
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.isMyTeam({
teamId:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
transferManagerWithTeam
移交群主
transferManagerWithTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
newOwnerId:
- 类型:字符串
- 描述:新群主ID
isLeave:
- 类型:布尔
- 描述:(可选项)是否同时离开群组
- 默认:false
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.transferManagerWithTeam({
teamId:'',
newOwnerId:'',
isLeave:false
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addManagersToTeam
添加管理员
addManagersToTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
users:
- 类型:字符串
- 描述:需要添加为管理员的用户ID列表
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addManagersToTeam({
teamId:'',
users:[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
removeManagersFromTeam
移除管理员
removeManagersFromTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
users:
- 类型:字符串数组
- 描述:需要移除管理员的用户ID列表
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.removeManagersFromTeam({
teamId:'',
users:[]
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
muteUserFromTeam
禁言指定成员
muteUserFromTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
userId:
- 类型:字符串
- 描述:用户ID
isMute:
- 类型:布尔
- 描述:(可选项)是否禁言
- 默认:true
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.muteUserFromTeam({
teamId:'',
userId:'',
isMute:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
muteAllFromTeam
禁言全体普通成员
muteAllFromTeam({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
isMute:
- 类型:布尔
- 描述:(可选项)是否禁言
- 默认:true
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.muteAllFromTeam({
teamId:''
isMute:true
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
fetchTeamMutedMembers
获取群内被禁言的成员列表,绝大多数情况这个请求都是从本地读取缓存并同步返回,但是由于群成员信息量较大, SDK 采取的是登录后延迟拉取的策略,考虑到用户网络等问题, SDK 有可能没有及时缓存群成员信息,那么这个请求将是个带网络请求的异步操作(增量请求)。同时这个接口会去请求本地没有缓存的群用户的资料信息,但不会触发 onUserInfoChanged 回调
fetchTeamMutedMembers({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true, //布尔类型;是否成功,true|false
members:[] //json数组;成功的群成员列表,详情参考附录:群成员信息
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.fetchTeamMutedMembers({
teamId:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamName
更新群组名称
updateTeamName({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
teamName:
- 类型:字符串
- 描述:群组名称
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamName({
teamId:'',
teamName:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamAvatar
更新群组头像
updateTeamAvatar({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
teamAvatarUrl:
- 类型:字符串
- 描述:群组头像 Url
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamAvatar({
teamId:'',
teamAvatarUrl:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamIntro
更新群介绍
updateTeamIntro({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
intro:
- 类型:字符串
- 描述:群介绍
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamIntro({
teamId:'',
intro:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamAnnouncement
更新群公告
updateTeamAnnouncement({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
announcement:
- 类型:字符串
- 描述:群公告
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamAnnouncement({
teamId:'',
announcement:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 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 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamJoinMode({
teamId:'',
joinMode:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamBeInviteMode
更新群组被邀请人验证方式
updateTeamBeInviteMode({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
beInviteMode:
- 类型:数字
- 描述:邀请方式
- 取值范围:
- 0:需要被邀请方同意
- 1:不需要被邀请方同意
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamBeInviteMode({
teamId:'',
beInviteMode:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamInviteMode
更新群组邀请他人方式
updateTeamInviteMode({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
inviteMode:
- 类型:数字
- 描述:邀请方式
- 取值范围:
- 0:只有管理员/群主可以邀请他人入群
- 1:所有人可以邀请其他人入群
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamInviteMode({
teamId:'',
inviteMode:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamUpdateInfoMode
更改群组更新信息的权限
updateTeamUpdateInfoMode({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
infoMode:
- 类型:数字
- 描述:群信息修改权限
- 取值范围:
- 0:只有管理员/群主可以修改
- 1:所有人可以修改
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamUpdateInfoMode({
teamId:'',
infoMode:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamUpdateClientCustomMode
更改群组更新自定义字段的权限
updateTeamUpdateClientCustomMode({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
clientCustomMode:
- 类型:数字
- 描述:修改谁有权限更新群组自定义字段
- 取值范围:
- 0:只有管理员/群主可以修改
- 1:所有人可以修改
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamUpdateClientCustomMode({
teamId:'',
clientCustomMode:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamCustomInfo
更新群自定义信息
updateTeamCustomInfo({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
customInfo:
- 类型:字符串
- 描述:群自定义信息
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamCustomInfo({
teamId:'',
customInfo:''
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
updateTeamNotifyState
修改群通知状态
updateTeamNotifyState({params},callback(ret,err))
params
teamId:
- 类型:字符串
- 描述:群组ID
notifyState:
- 类型:数字
- 描述:群通知状态
- 取值范围:
- 0:接受任何群消息通知
- 1:不接受任何群消息通知
- 2:只接受管理员的群消息通知(仅高级群支持,超大群不支持)
callback(ret,err)
ret:
- 类型:JSON 对象
- 内部字段:
{
status: true //布尔类型;是否成功,true|false
}
err:
- 类型:JSON 对象
- 内部字段:
{
code:0, //数字类型;错误码
msg: '' //字符串类型;错误信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.updateTeamNotifyState({
teamId:'',
notifyState:0
},function(ret,err) {
if(ret.status)
api.alert({ msg:JSON.stringify(ret)});
else
api.alert({ msg:JSON.stringify(err)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
fetchTeamNotifyState
查询群通知状态
fetchTeamNotifyState({params},callback(ret))
params
teamId:
- 类型:字符串
- 描述:群组ID
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
notifyState:0 //数字类型;群通知状态;0:接受任何群消息通知,1:不接受任何群消息通知,2:只接受管理员的群消息通知(仅高级群支持,超大群不支持)
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.fetchTeamNotifyState({
teamId:''
},function(ret) {
api.alert({ msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addTeamListen
群组相关监听
addTeamListen({params}, callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
eventType:, //字符串类型;账号事件类型
//onTeamAdded(群组增加回调)
//onTeamUpdated(群组更新回调)
//onTeamRemoved(群组移除回调)
//onTeamMemberChanged(群组成员变动回调,包括数量增减以及成员属性变动)
team:{} //json对象;群组信息;详情参考附录:群组信息
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addTeamListen(function(ret) {
alert(JSON.stringify(ret));
});
可用性
iOS系统
可提供的1.0.0及更高版本
configure
UI设置
configure({params})
params
navigationStyle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
bg:'#fff', //字符串类型;导航条背景色,支持rgb、rgba、#;默认:#fff
backImg:'' //字符串类型;导航条返回按钮图片路径
}
navigationTitle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
title: '', //字符串类型;聊天页面标题;默认:聊天用户ID
titleColor: '#000' //字符串类型;聊天页面标题文字颜色;默认:#000
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.configure({
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
chat
根据会话 ID 和类型创建并打开聊天页面
chat({params})
params
sessionId:
- 类型:字符串
- 描述:会话ID
chatType:
- 类型:数字类型
- 描述:(可选项)会话类型
- 默认:0
- 取值范围:
- 0:单聊
- 1:群组
- 2:聊天室
- 3:云商服
- 5:超大群
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.chat({
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
chatList
打开最近会话页面
chatList({params})
params
navigationTitle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
title: '', //字符串类型;最近会话页面标题;默认:会话
titleColor: '#000' //字符串类型;最近会话页面标题文字颜色;默认:#000
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.chatList({
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
contactsList
打开好友列表页面
contactsList({params})
params
navigationTitle:
- 类型:JSON 对象
- 描述:导航条样式配置
- 内部字段:
{
title: '', //字符串类型;好友列表页面标题;默认:通讯录
titleColor: '#000' //字符串类型;好友列表页面标题文字颜色;默认:#000
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.contactsList({
});
可用性
iOS系统
可提供的 1.0.0 及更高版本
addAvatarListener
聊天页面内头像点击事件监听
addAvatarListener(callback(ret))
callback(ret)
ret:
- 类型:JSON 对象
- 内部字段:
{
message: {} //JSON 对象;消息详情参考附录:消息内容
}
示例代码
var UIYunxinIM = api.require('UIYunxinIM');
UIYunxinIM.addAvatarListener(function(ret) {
api.alert({msg:JSON.stringify(ret)});
});
可用性
iOS系统
可提供的1.0.0及更高版本
附录
用户信息
- 类型:JSON 对象
- 描述:用户的相关信息
- 内部字段:
{
userId: '', //字符串类型;用户Id
alias: '', //字符串类型;备注名,长度限制为128个字符
ext: '', //字符串类型;扩展字段
serverExt: '', //字符串类型;服务器扩展字段,该字段只能由服务器进行修改,客户端只能读取
userInfo:{ //json对象;用户资料,仅当用户选择托管信息到云信时有效,用户资料除自己之外,不保证其他用户资料实时更新
nickName: '', //字符串类型;用户昵称
avatarUrl: '', //字符串类型;用户头像
thumbAvatarUrl: '', //字符串类型;用户头像缩略图,仅适用于使用云信上传服务进行上传的资源,否则无效
sign: '', //字符串类型;用户签名
gender: 0, //数字类型;性别;0:未知性别,1:男,2:女
email: '', //字符串类型;邮箱
birth: '', //字符串类型;生日
mobile: '', //字符串类型;电话号码
ext: '' //字符串类型;用户自定义扩展字段
}
}
会话信息
- 类型:JSON 对象
- 描述:会话的相关信息
- 内部字段:
{
sessionId: '', //字符串类型;会话 ID
chatType:0 //数字类型;会话类型
//取值范围:
//0:单聊
//1:群组
//2:聊天室
//3:云商服
//5:超大群
}
最近会话信息
- 类型:JSON 对象
- 描述:最近会话的相关信息
- 内部字段:
{
session: {}, //json对象类型;当前会话,详情参考附录:会话信息
lastMessage: {}, //json对象类型;最后一条消息,详情参考附录:消息内容
unreadCount:0, //数字类型;未读消息数
updateTime:0, //数字类型;服务端会话的最新更新时间,本地会话无效
localExt:{}, //json对象类型;本地扩展
updateTime:'', //字符串类型;会话服务扩展字段(本地会话该字段无效)
}
群组信息
- 类型:JSON 对象
- 描述:群组的相关信息
- 内部字段:
{
teamId:'', //字符串类型;群ID
teamName:'', //字符串类型;群名称
avatarUrl:'', //字符串类型;群头像
thumbAvatarUrl:'', //字符串类型;群缩略头像,仅适用于使用云信上传服务进行上传的资源,否则无效
type:0, //数字类型;群类型
//取值范围:
//0:普通群
//1:高级群
//2:超大群
owner:'', //字符串类型;群拥有者ID,普通群拥有者就是群创建者,但是高级群可以进行拥有信息的转让
intro:'', //字符串类型;群介绍
announcement:'', //字符串类型;群公告
memberNumber:6, //数字类型;群成员人数,这个值表示是上次登录后同步下来群成员数据,并不实时变化
level:0, //数字类型;群等级,目前群人数主要是限制群人数上限
createTime:6, //数字类型;群创建时间
joinMode:0, //数字类型;群验证模式,只有高级群有效;默认:0:允许所有人加入
//取值范围:
//0:允许所有人加入
//1:需要验证
//2:不允许任何人加入
inviteMode:0, //数字类型;群邀请权限,只有高级群,超大群有效效 //取值范围:
//0:只有管理员/群主可以邀请他人入群
//1:所有人可以邀请其他人入群
beInviteMode:0, //数字类型;被邀请模式,只有高级群,超大群有效
//取值范围:
//0:需要被邀请方同意
//1:不需要被邀请方同意
updateInfoMode:0, //数字类型;修改群信息权限,只有高级群有效 //取值范围:
//0:只有管理员/群主可以修改
//1:所有人可以修改
updateClientCustomMode:0,//数字类型;修改群客户端自定义字段权限。只有高级群有效
//取值范围:
//0:只有管理员/群主可以修改
//1:所有人可以修改
serverCustomInfo:'', //字符串类型;群服务端自定义信息, 应用方可以自行拓展这个字段做个性化配置,客户端不可以修改这个字段
clientCustomInfo:'', //字符串类型;群客户端自定义信息,应用方可以自行拓展这个字段做个性化配置,客户端可以修改这个字段
inAllMuteMode:false //布尔类型;群组是否正在全员禁言,只有高级群、超大群有效
}
群成员信息
- 类型:JSON 对象
- 描述:群成员的相关信息
- 内部字段:
{
teamId:'', //字符串类型;群ID
userId:'', //字符串类型;群成员ID
invitor:'', //字符串类型;邀请者ID,此字段仅当该成员为自己时有效。不允许查看其他群成员的邀请者
inviterAccid:'', //字符串类型;邀请者Accid,该属性值为@""或者自身Accid时均表示无邀请人,当未返回时需要主动调用接口去获取
type:0, //数字类型;群成员类型
//取值范围:
//0:普通群员
//1:群拥有者
//2:群管理员
//3:申请加入用户
nickname:'', //字符串类型;群昵称
isMuted:true, //布尔类型;是否被禁言
createTime:6, //数字类型;进群时间
customInfo:'' //字符串类型;新成员群自定义信息
}
消息内容
- 类型:JSON 对象
- 描述:获取到的消息包含的内容及其相关信息
- 内部字段:
{
messageId: '', //字符串类型;消息ID,唯一标识
session:{}, //JSON 对象;消息所属会话;详情参考附录:会话信息
from: '', //字符串类型;消息来源
serverID: '', //字符串类型;消息服务端ID
remoteExt: {}, //JSON 对象;服务器扩展
localExt: {}, //JSON 对象;客户端本地扩展
timestamp: 0, //数字类型;消息发送时间
deliveryState: 0, //数字类型;消息投递状态 仅针对发送的消息;0:消息发送失败,1:消息发送中,2:消息发送成功
attachmentDownloadState: 0,//数字类型;消息附件下载状态 仅针对收到的消息;0:附件需要进行下载 (有附件但并没有下载过),1:附件收取失败 (尝试下载过一次并失败),2:附件下载中,3:附件下载成功/无附件
isReceivedMsg:true, //布尔类型;是否是收到的消息,由于有漫游消息的概念,所以自己发出的消息漫游下来后仍旧是"收到的消息",这个字段用于消息出错是时判断需要重发还是重收
isOutgoingMsg:true, //布尔类型;是否是往外发的消息,由于能对自己发消息,所以并不是所有来源是自己的消息都是往外发的消息,这个字段用于判断头像排版位置(是左还是右)
isPlayed:true, //布尔类型;消息是否被播放,修改这个属性,后台会自动更新 db 中对应的数据。聊天室消息里,此字段无效
isDeleted:true, //布尔类型;消息是否标记为已删除,已删除的消息在获取本地消息列表时会被过滤掉,只有根据 messageId 获取消息的接口可能会返回已删除消息。聊天室消息里,此字段无效
isRemoteRead:true, //布尔类型;对端是否已读,只有当当前消息为 P2P 消息且 isOutgoingMsg 为 true 时这个字段才有效,需要对端调用过发送已读回执的接口
isTeamReceiptSended:true, //布尔类型;是否已发送群回执;只针对群消息有效
teamReceiptInfo:{ //json对象;群已读回执信息只有当当前消息为 Team 消息且 teamReceiptEnabled 为 true 时才有效,需要对端调用过发送已读回执的接口
readCount:0, //数字类型;已读人数
unreadCount:0, //数字类型;未读人数
},
senderName: '', //字符串类型;消息发送者名字,当发送者是自己时,这个值可能为空,这个值表示的是发送者当前的昵称,而不是发送消息时的昵称。聊天室消息里,此字段无效
senderClientType: 0, //数字类型;发送者客户端类型
//0:未知类型
//1:Android
//2:iOS
//4:PC
//8:WP
//16:WEB
//32:REST API
//64:macOS
isBlackListed:true, //布尔类型;是否在黑名单中,true 为被目标拉黑
body: {} //JSON 对象;消息体(消息包含的内容),详情参考附录:消息体内容
}
消息体内容
- 类型:JSON 对象
- 描述:消息体包含的内容及其相关信息
- 内部字段:
{
type:, //数字类型;消息体的类型,取值范围如下:
//0:文本类型
//1:图片类型
//2:声音类型
//3:视频类型
//4:位置类型
//5:通知类型
//6:文件类型
//10:提醒类型
//11:机器人类型
//100:自定义类型
...: ... //消息体除type外的其它内容,详情参考附录:消息体-文本、图片、声音、视频、位置、通知、文件、机器
}
消息体-文本
- 类型:JSON 对象
- 描述:文本类型的消息体内容
- 内部字段:
{
type: 0,
text: '' //字符串类型;文本内容
}
消息体-图片
- 类型:JSON 对象
- 描述:图片类型的消息体内容
- 内部字段:
{
type: 1,
path: '', //字符串类型;图片本地路径
displayName: '', //字符串类型;文件展示名
thumbPath: '', //字符串类型;缩略图本地路径
url: '', //字符串类型;图片远程路径
thumbUrl: '', //字符串类型;缩略图远程路径
size: { //json对象;图片尺寸
w:, //数字类型;图片宽
h: //数字类型;图片高
},
fileLength:0, //数字类型;文件大小
md5: '' //字符类型;图片MD5
}
消息体-声音
- 类型:JSON 对象
- 描述:声音类型的消息体内容
- 内部字段:
{
type: 2,
path: '', //字符串类型;语音的本地路径
url: '', //字符串类型;语音的远程路径
duration:0, //数字类型;语音时长,毫秒为单位
md5: '' //字符类型;音频MD5
}
消息体-视频
- 类型:JSON 对象
- 描述:视频类型的消息体内容
- 内部字段:
{
type: 3,
path: '', //字符串类型;视频的本地路径
url: '', //字符串类型;视频的远程路径
displayName: '', //字符串类型;视频展示名
coverUrl: '', //字符串类型;视频封面的远程路径
coverPath: '', //字符串类型;视频封面的本地路径
coverSize: { //json对象;封面尺寸
w:, //数字类型;封面宽
h: //数字类型;封面高
},
duration:0, //数字类型;视频时长,毫秒为单位
fileLength:0, //数字类型;文件大小
md5: '' //字符类型;图片MD5
}
消息体-位置
- 类型:JSON 对象
- 描述:位置类型的消息体内容
- 内部字段:
{
type: 4,
latitude:0, //数字类型;维度
longitude:0, //数字类型;经度
title: '' //字符类型;标题
}
消息体-通知
- 类型:JSON 对象
- 描述:通知类型的消息体内容
- 内部字段:
{
type: 5,
notificationType: 0, //数字类型;维度
//取值范围:
//0:未被支持的通知类型,由于系统升级,旧版本的 SDK 可能无法解析新版本数据,所有无法解析的新通知显示为未被支持
//1:群通知
//2:网络电话通知
//3:聊天室通知
//4:超大群通知
}
消息体-文件
- 类型:JSON 对象
- 描述:文件类型的消息体内容
- 内部字段:
{
type: 6,
path: '', //字符串类型;文件的本地路径
url: '', //字符串类型;文件的远程路径
displayName: '', //字符串类型;文件显示名
fileLength:0, //数字类型;文件大小
md5: '' //字符类型;文件MD5
}
消息体-机器人
- 类型:JSON 对象
- 描述:机器人类型的消息体内容
- 内部字段:
{
type: 11,
isFromRobot: true, //布尔类型;判断此消息是否是属于机器人回复的消息
robotId: '', //字符串类型;当该消息为用户上行发送给机器人时,此字段为目标机器人 Id,当该消息为机器人回复的消息时, 此字段为本消息所属机器人 Id
response: '', //字符串类型;机器人回复的消息结果,只在机器人下行消息,此字段有效
responseForMessageId: '', //字符串类型;机器人回复的消息所属的提问消息 Id ,只在机器人下行消息,此字段有效
}