# yach.nim.util
# owner
仇彦龙(147691)
# 安装
npm i yach.nim.util
# API 列表
# getUser
获取当前用户的信息
util.nimUtil.getUser(id)
# getCustomYachNick(obj)
obj 当前个人信息对象
util.nimUtil.getCustomYachNick(id)
# getUsers(userIdList)
同1 获取的是批量的数据,获取用户名片数组,每次最多 150 个
util.nimUtil.getUsers
//eg:
nim.getUsers({
accounts: ['account1', 'account2'],
done: getUsersDone
});
function getUsersDone(error, users) {
console.log('获取用户名片数组' + (!error?'成功':'失败'), error, users);
if (!error && users.length) {
onUsers(users);
}
}
# getTeam(id, isDoNotUseYachCache = false) {
群信息: 开发者可以调用此接口获取群资料
util.nimUtil.getTeam
# updateTeam(teamId, obj) {
【更新群】 普通群不可以更新 群加入方式 群被邀请模式 群邀请模式 群信息修改权限 群信息自定义字段修改权限 更新群后, 所有群成员会收到一条类型为'updateTeam'的群通知消息。此类群通知消息的from字段的值为更新群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为被更新的群信息。
//eg teamId: '123',
uti.nimUti.updateTeam('123',{
name: '群名字',
avatar: 'avatar',
intro: '群简介',
announcement: '群公告',
custom: '自定义字段',
done: updateTeamDone
});
function updateTeamDone(error, team) {
console.log('更新群' + (!error?'成功':'失败'), error, team);
}
# applyTeam(id) {
申请入群 用户可以主动申请加入高级群, 目标群的群主和管理员会收到一条类型为'applyTeam'的系统通知, 此类系统通知的from字段的值为申请方的帐号, to字段的值为对应的群ID, 高级群的群主和管理员在收到入群申请后, 可以选择通过或者拒绝入群申请。 如果通过入群申请, 那么该群的所有群成员会收到一条类型为'passTeamApply'的群通知消息, 此类群通知消息的from字段的值为通过入群申请的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象, attach有一个字段account包含了申请方的帐号, attach有一个字段members的值为被通过申请的群成员列表。 如果拒绝入群申请, 那么申请人会收到一条类型为'rejectTeamApply'的系统通知, 此类系统通知的from字段的值为拒绝方的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群。
uti.nimUti.applyTeam
# leaveTeam(teamId) {
主动退群.主动退群后, 所有群成员会收到一条类型为'leaveTeam'的群通知消息。此类群通知消息的from字段的值为退群的人的帐号, to字段的值为对应的群ID, attach有一个字段team的值为对应的群对象。
uti.nimUti.leaveTeam
# transferTeam(teamId, account, leave) {
同上,转移群
uti.nimUti.transferTeam
# dismissTeam(teamId) {
同上,退出群
uti.nimUti.dismissTeam
# getTeamMembers(teamId) {
同上,获取群成员信息
uti.nimUti.getTeamMembers
# addTeamMembers(teamId, accounts) {
uti.nimUti.addTeamMembers
# removeTeamMembers(teamId, accounts) {
util.nimUti.removeTeamMembers
# removeTeamManagers(teamId, accounts) {
util.nimUti.removeTeamManagers
# addTeamManagers(teamId, accounts) {
util.nimUti.addTeamManagers
# getLocalSession(id) {
util.nimUti.getLocalSession
# insertLocalSession(type, id) {
util.nimUti.insertLocalSession
# updateLocalSession(id, local) {
util.nimUti.updateLocalSession
# updateTeamMute(teamId, mute, type) {
util.nimUti.updateTeamMute
# updatePersonMute(id, mute) {
util.nimUti.updatePersonMute
# getPersonMute() {
获取黑名单和静音列表。如果开发者在初始化SDK的时候设置了syncRelations为false, 那么就收不到onblacklist和onmutelist回调, 可以调用此接口来获取黑名单和静音列表
util.nimUti.getPersonMute
# forwardMsg(msg, scene, to) {
util.nimUti.forwardMsg
# resendMsg(someMsg) {
util.nimUti.resendMsg
# deleteMsg(someMsg) {
util.nimUti.deleteMsg
# deleteLocalMsg(msg) {
util.nimUti.deleteLocalMsg
# updateLocalMsg(idClient, localCustom) {
util.nimUti.updateLocalMsg
# getHistoryMsgs(scene, id, time, num, reverse) {
util.nimUti.getHistoryMsgs
# deleteLocalMsgsBySession(scene, to) {
util.nimUti.deleteLocalMsgsBySession
# getLocalMsgByIdClient(idClient) {
util.nimUti.getLocalMsgByIdClient
# notifyForNewTeamMsg(teamId) {
是否需要群消息通知. 结果回调函数,成功时第二个参数是一个map, key是群ID, value 是一个布尔值, 表示该群是否需要群消息通知;如果有部分成功部分失败,第三个参数是失败的群ID数组
util.nimUti.notifyForNewTeamMsg
# sendTeamMsgReceipt(option) {
标记群组消息已读
util.nimUti.sendTeamMsgReceipt
//eg:
nim.sendTeamMsgReceipt({
teamMsgReceipts: [{
teamId: '1027484',
idServer: '68953284018302'
}],
done: sendTeamMsgReceiptDone
})
function sendTeamMsgReceiptDone (error, obj) {
console.log('标记群组消息已读' + (!error?'成功':'失败'));
}
# getTeamMsgReads(id, idServer) {
查询群组消息已读、未读数量
util.nimUtil.getTeamMsgReads
# getTeamMsgReadAccounts(id, idServer) {
util.nimUtil.getTeamMsgReadAccounts
# stopAllNoSpeaking(teamId, type="normal"){
util.nimUtil.stopAllNoSpeaking
# publishEvent
向订阅者发布事件。若云信系统内置的在线状态无法满足应用需求或者开发者需要一些单独的自定义事件时,可以使用该接口来发布。
util.nimUtil.publishEvent
//eg:
nim.publishEvent({
type: 1, //传入1即可。
value: 10001, //value为10000以上(1-9999为云信预定义值,开发者不可使用)
custom: 'hello world',
vaildTime: 60,
sync: false,
done: publishEventDone
});
function publishEventDone(error, obj) {
console.log('发布事件' + (!error?'成功':'失败'), error, obj);
}
# getLocalSessions
util.nimUtil.getLocalSessions
# getSessionsWithMoreRoaming(id,callback)
查询漫游消息不全的会话/会话列表,要查询的会话id,若不填,则查询全部
util.nimUtil.getSessionsWithMoreRoaming
# updateSessionsWithMoreRoaming
更新漫游消息不全的会话的漫游时间戳
util.nimUtil.updateSessionsWithMoreRoaming
# getTeams
如果开发者在初始化SDK的时候设置了syncTeams为false, 那么就收不到onteams回调, 可以调用此接口来获取群列表
util.nimUtil.getTeams
# deleteMsgSelf
单向删除消息不同与直接删除消息,单向删除消息后,自己看不到删除的消息,但对方仍能看到,也就是仅删除自己这侧的消息.如果存在多端登录,其他端会收到一个单向删除的系统通知
export function deleteMsgSelf(msg,custom={}){
return new Promise((resolve,reject)=>{
let startTime = Date.now();
window.nim.deleteMsgSelf({
msg,
custom,
done: function(err,obj){
elk('window.nim.deleteMsgSelf', startTime);
return err ? reject(err) : resolve(obj)
}
})
})
}
# deleteLocalMsgs(scene, to)
scene: 'p2p' || 'team' to: id 删除本地消息
util.nimUtil.deleteLocalMsgs
# getTeamMemberByTeamIdAndAccount(tid,uid)
通过群ID及成员账号获取群成员信息,* tid 是群id string uid: 当前用户的id
util.nimUtil.getTeamMemberByTeamIdAndAccount
# resetCurrSession(id)
id 是当前会话的id,重置当前会话.重置当前会话后, 所有会话在收到消息之后会更新未读数。
util.nimUtil.resetCurrSession
# setCurrSession
设置当前会话 设置后, 当前会话未读数会被置为 0, 同时开发者会收到 onupdatesession 回调 之后此会话在收到消息之后不会更新未读数 传空字符串的话, 重置当前会话为空
util.nimUtil.setCurrSession
# deleteLocalSession(sid)
删除本地会话。 在支持数据库时, 删了本地会话之后, 下次同步就同步不到对应的会话。如果不支持数据库, 算成功。如果对应的会话不存在, 算成功
util.nimUtil.deleteLocalSession
# getLocalMsgs
util.nimUtil.getLocalMsgs
# sendTipMsg
util.nimUtil.sendTipMsg
# sendMsgReceipt
发送消息已读回执,目前只支持'p2p'会话,如果没有传入消息, 则直接返回成功,如果已经发送过比传入的消息的时间戳大的已读回执, 那么直接返回成功
util.nimUtil.sendMsgReceipt
# sendText
util.nimUtil.sendText
# sendCustomMsg
发送自定义消息。 自定义消息是消息类型的一种,下面的代码用自定义消息实现了石头剪刀布游戏
util.nimUtil.sendCustomMsg
# saveMsgsToLocal
保存漫游消息 接受一组消息列表
util.nimUtil.saveMsgsToLocal
# version
# 1.0.5.20201207
- getTeam增加强制走缓存参数:getTeam(id, isDoNotUseYachCache = false)
# 0.1.0.20201103
- ncu
# 0.0.9.20200916
- cache get user
- cache get team
# 0.0.8.20200904
- 暂时屏蔽掉elk上报
# 0.0.7.20200831
- fix start time bug
# 0.0.6.20200814
- 丰富api list文档
# 0.0.5.20200728
- 丰富api list文档
# 0.0.4.20200727
- add owner
# 0.0.3.20200714
- 丰富util
- 添加elk
# 0.0.2.20200705
- 修改readme
# 0.0.1.20200613
- init project