会话未读数
危险
- 清除浏览器缓存会导致会话未读数不准确
- 会话消息未读数存储在 localStorage 中, 若浏览器不支持或禁用 localStorage,未读消息数将不会保存,浏览器页面刷新未读消息数将不会存在
获取所有会话未读数
获取所有会话类型的未读数。
提示
不支持聊天室、超级群会话
API 参考:getTotalUnreadCount
const includeMuted = false
const conversationTypes = [RongIMLib.ConversationType.PRIVATE, RongIMLib.ConversationType.GROUP]
RongIMLib.getTotalUnreadCount(includeMuted, conversationTypes).then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
includeMuted | Boolean | 否 | 是否包含免打扰会话,默认为 false |
conversationTypes | Array | 否 | 会话类型,参考 ConversationType。 |
获取所有群会话未读 @ 消息数
获取所有会话类型的未读 @ 消息数。
提示
仅支持普通群会话 SDK 从 5.9.0 版本开始支持该接口
API 参考:getAllUnreadMentionedCount
RongIMLib.getAllUnreadMentionedCount().then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})
按会话免打扰级别获取未读数(仅限 Web 端)
提示
SDK 从 5.5.1 版本开始支持该接口,暂不支持 Electron 平台。
查找免打扰配置符合传入的免打扰级别的会话,返回所有会话中未读消息的总数。
API 参考:getTotalUnreadCountByLevels
const conversationTypes = [
RongIMLib.ConversationType.PRIVATE,
RongIMLib.ConversationType.GROUP,
RongIMLib.ConversationType.ULTRA_GROUP,
]
const levels = [
RongIMLib.NotificationLevel.AT_MESSAGE_NOTIFICATION,
RongIMLib.NotificationLevel.AT_USER_NOTIFICATION
]
RongIMLib.getTotalUnreadCountByLevels(conversationTypes, levels).then(res => {
if (res.code === 0) {
console.log(res.data)
} else {
console.log(res.msg)
}
}).catch(error => {
console.log(error)
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationTypes | ConversationType[] | 是 | 会话类型,参考 ConversationType。 不支持聊天室。 |
levels | NotificationLevel[] | 是 | 会话的免打扰级别设置。SDK 会根据该参数查找匹配的会话,并计算未读消息数。参考免打扰级别 。传空数组则统计全部免打扰级别会话中的未读数。 |
按会话免打扰级别获取未读 @ 消息数(仅限 Web 端)
提示
SDK 从 5.5.1 版本开始支持该接口,暂不支持 Electron 平台。
查找免打扰配置符合传入的免打扰级别的会话,返回所有会话中所有未读 @ 消息的总数。
API 参考:getTotalUnreadMentionedCountByLevels
const conversationTypes = [
RongIMLib.ConversationType.PRIVATE,
RongIMLib.ConversationType.GROUP,
RongIMLib.ConversationType.ULTRA_GROUP,
]
const levels = [
RongIMLib.NotificationLevel.AT_MESSAGE_NOTIFICATION,
RongIMLib.NotificationLevel.AT_USER_NOTIFICATION
]
RongIMLib.getTotalUnreadMentionedCountByLevels(conversationTypes, levels).then(res => {
if (res.code === 0) {
console.log(res.data)
} else {
console.log(res.msg)
}
}).catch(error => {
console.log(error)
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationTypes | ConversationType[] | 是 | 会话类型,参考 ConversationType。不支持聊天室。 |
levels | NotificationLevel[] | 是 | 会话的免打扰级别设置。SDK 会根据该参数查找匹配的会话,并计算未读 @ 消息数。参考免打扰级别 。传空数组则统计全部免打扰级别会话中的全部未读 @ 消息数。 |
获取指定会话未读数
API 参考:getUnreadCount
const conversationType = RongIMLib.ConversationType.PRIVATE;
const targetId = " 会话 Id ";
RongIMLib.getUnreadCount({ conversationType, targetId }).then(res => {
if (res.code === 0) {
console.log(res.code, res.data)
} else {
console.log(res.code, res.msg)
}
}).catch(error => {
console.log(error)
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
targetId | String | 是 | 接收方的 userId |
conversationType | Number | 是 | 会话类型,参考 ConversationType。 |
清除指定会话未读数
清除指定会话(除聊天室外)的未读数。
API 参考:clearMessagesUnreadStatus
const conversationType = RongIMLib.ConversationType.PRIVATE;
const targetId = " 会话 Id ";
RongIMLib.clearMessagesUnreadStatus({ conversationType, targetId }).then(res => {
if (res.code === 0) {
console.log(res.code)
} else {
console.log(res.code, res.msg)
}
})
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
targetId | String | 是 | 接收方的 userId |
conversationType | Number | 是 | 会话类型,参考 ConversationType。 |
清除全部会话未读数
提示
最低版本:5.0.2
RongIMLib.clearAllMessagesUnreadStatus()
多端同步未读数
未读消息存在 localStorage 中,未读消息数是针对当前端的未读消息数,服务器不存未读消息数量。
API 参考:sendSyncReadStatusMessage
// 清除未读数
const conversationType = RongIMLib.ConversationType.PRIVATE;
const targetId = " 会话 Id ";
RongIMLib.clearMessagesUnreadStatus({ conversationType, targetId }).then(res => {
if (res.code === 0) {
// 清理成功
console.log(res)
// 发送多端同步未读数消息
RongIMLib.sendSyncReadStatusMessage({ conversationType, targetId }, Date.now()).then(() => {})
}
})