跳到主要内容

版本:2.X

会话未读数

获取所有会话未读数

会话未读数指某一个会话中未读消息的数量

危险
  1. 清除浏览器缓存会导致会话未读数不准确
  2. 会话未读数为本地操作,换端登录会话未读数不会同步
  3. 会话消息未读数存储在 WebStorage 中, 若浏览器不支持或禁用 WebStorage,未读消息数将不会保存,浏览器页面刷新未读消息数将不会存在

API 参考:getTotalUnreadCount

参数说明

参数类型必填说明最低版本
callbackObject回调对象2.2.0
callback.onSuccessFunction成功回调2.2.0
callback.onErrorFunction失败回调2.2.0
conversationTypesArray会话类型2.9.5
includeMutedBoolean是否包含免打扰会话,默认为:false2.9.5

代码示例

var conversationTypes = [RongIMLib.ConversationType.SYSTEM];
var callback = {
onSuccess: function(count) {
console.log('获取所有会话未读消息数成功', count);
},
onError: function(error) {
console.log('获取所有会话未读消息数失败', error);
}
};
RongIMClient.getInstance().getTotalUnreadCount(callback, conversationTypes);

获取单个会话未读数

方式一:调用 getUnreadCount 方法来获取会话未读数。
方式二:通过 conversation.unreadMessageCount 获取。

API 参考:getUnreadCount

参数说明

参数类型必填说明最低版本
conversationTypeNumber会话类型,系统会话传入 RongIMLib.ConversationType.SYSTEM2.2.0
targetIdString系统会话 ID2.2.0
callbackObject回调对象2.2.0
callback.onSuccessFunction成功回调2.2.0
callback.onErrorFunction失败回调2.2.0

代码示例

var conversationType = RongIMLib.ConversationType.SYSTEM;
var targetId = '系统会话 ID';
var callback = {
onSuccess: function(count) {
console.log('获取指定会话未读消息数成功', count);
},
onError: function(error) {
console.log('获取指定会话未读消息数失败', error);
}
};
RongIMLib.RongIMClient.getInstance().getUnreadCount(conversationType, targetId, callback);

按会话类型获取未读数

API 参考:getConversationUnreadCount

参数说明

参数类型必填说明最低版本废弃版本
conversationTypesArray会话类型,系统会话传入 RongIMLib.ConversationType.SYSTEM2.2.02.6.0
callbackObject回调对象2.2.02.6.0
callback.onSuccessFunction成功回调2.2.02.6.0
callback.onErrorFunction失败回调2.2.02.6.0

代码示例

var conversationTypes = [RongIMLib.ConversationType.SYSTEM];
var callback = {
onSuccess: function(count) {
console.log('获取指定会话类型总未读消息数成功', count);
},
onError: function(error) {
console.log('获取指定会话类型总未读消息数失败', error);
}
};
RongIMClient.getInstance().getConversationUnreadCount(conversationTypes, callback);

清除单个会话未读数

API 参考:clearUnreadCount

参数说明

参数类型必填说明最低版本
conversationTypeNumber会话类型,系统会话传入 RongIMLib.ConversationType.SYSTEM2.2.0
targetIdString系统会话 ID2.2.0
callbackObject回调对象2.2.0
callback.onSuccessFunction成功回调2.2.0
callback.onErrorFunction失败回调2.2.0

代码示例

var conversationType = RongIMLib.ConversationType.SYSTEM;
var targetId = '系统会话 ID';
var callback = {
onSuccess: function() {
console.log('清除指定会话未读消息数成功');
},
onError: function(error) {
console.log('清除指定会话未读消息数失败', error);
}
};
RongIMClient.getInstance().clearUnreadCount(conversationType, targetId, callback);

清除全部会话未读数

最低版本:2.10.4

RongIMClient.getInstance().clearAllUnreadCount()

多端同步未读数

未读消息存在 localStorage 中,未读消息数是针对当前端的未读消息数,服务器不存未读消息数量。

实现方案

本端清除会话未读数后,通过在会话中发送一条同步消息,通知其他端。其他端收取到会话中的同步消息后,调用相应方法清除本地会话未读消息数。

  1. 本端阅读会话中的消息后,调用 clearUnreadCount() 清除会话未读消息数。
  2. 清除成功后,在会话中发送 SyncReadStatusMessage 类型消息,同步阅读状态。
  3. 其他端接收到 SyncReadStatusMessage 类型消息后,调用 clearUnreadCount() 方法,清除本地的会话未读数。(在 v2.10.4 版本之后收到该消息时 sdk 内部会清理未读数,无需用户主动调用)