跳到主要内容

会话未读数

危险
  1. 清除浏览器缓存会导致会话未读数不准确
  2. 会话消息未读数存储在 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)
})
参数类型必填说明
includeMutedBoolean是否包含免打扰会话,默认为 false
conversationTypesArray会话类型,参考 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)
})
参数类型必填说明
conversationTypesConversationType[]会话类型,参考 ConversationType。 不支持聊天室。
levelsNotificationLevel[]会话的免打扰级别设置。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)
})
参数类型必填说明
conversationTypesConversationType[]会话类型,参考 ConversationType。不支持聊天室。
levelsNotificationLevel[]会话的免打扰级别设置。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)
})
参数类型必填说明
targetIdString接收方的 userId
conversationTypeNumber会话类型,参考 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)
}
})
参数类型必填说明
targetIdString接收方的 userId
conversationTypeNumber会话类型,参考 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(() => {})
}
})