获取未读消息数
获取未读消息数
IMLib SDK 支持您获取超级群下的未读消息数,具体可以获取的内容如下:
- 当前用户加入的所有超级群、指定超级群、或指定频道的未读消息数。
- 当前用户加入的所有超级群、指定超级群、或指定频道的未读 @ 消息数。
- 按免打扰级别获取总未读消息数。
- 返回的未读数最大值为 999,如果实际未读数超过 999,接口仍返回 999。
提示
IMLib SDK 仅在 ChannelClient
中提供相关接口的调用。
获取多个超级群的未读消息数
SDK 支持获取当前用户加入的所有超级群中未读消息数与未读 @ 消息数。
批量获取当前用户的超级群的未读消息数
提示
IMLib SDK 从 5.4.6 版本开始支持此功能。
在社群应用场景中,如果您需要实时显示用户所在的多个超级群下所有频道的最新未读消息数据,您可以使用 getUltraGroupConversationUnreadInfoList
一次获取最多 20 个超级群下所有频道的未读数据。具体包含:
- 超级群频道的未读消息数
- 超级群频道的未读 @ 消息数
- 超级群频道中仅 @ 当前用户的未读 @ 消息数
- 超级群频道的免打扰级别
接口
Java
ChannelClient.getInstance().getUltraGroupConversationUnreadInfoList(targetIds,callback);
参数说明
参数 | 类型 | 说明 |
---|---|---|
targetIds | String[] | 超级群会话 targetId 的列表,最多 20 个。 |
callback | ResultCallback<List<ConversationUnreadInfo>> | 接口回调 |
示例代码
Java
ChannelClient.getInstance().getUltraGroupConversationUnreadInfoList(targetIds,
new IRongCoreCallback.ResultCallback<List<ConversationUnreadInfo>>() {
@Override
public void onSuccess(List<ConversationUnreadInfo> ConversationUnreadInfos) {
if (ConversationUnreadInfos == null) return;
for (ConversationUnreadInfo unreadInfo : ConversationUnreadInfos) {
// 获取超级群会话类型
Conversation.ConversationType type = unreadInfo.getType();
String targetId = unreadInfo.getTargetId();
// 获取超级群频道 ID
String channelId = unreadInfo.getChannelId();
//获取频道内的未读消息数
int unreadMessageCount = unreadInfo.getUnreadMessageCount();
//获取频道内的 @ 未读消息数
int unreadMentionedCount =
unreadInfo.getUnreadMentionedCount();
//获取频道内仅自己被 @ 的未读消息数(@ 我)
int mentionedMeCount = unreadInfo.getUnreadMentionedMeCount();
//获取频道的免打扰级别设置
IRongCoreEnum.PushNotificationLevel pushNotificationLevel = getPushNotificationLevel();
}
//该回调在非 UI 线程返回,如果需要做 UI 操作,请切换至 UI 线程
}
@Override
public void onError(IRongCoreEnum.CoreErrorCode ErrorCode) {
}
});
获取当前用户的超级群未读消息数总和
获取当前登录用户加入的超级群所有会话的未读消息数的总和。
接口
Java
class ResultCallback {
onSuccess(Integer count)
onError(ErrorCode code)
}
public void getUltraGroupAllUnreadCount(final IRongCoreCallback.ResultCallback<Integer> callback)
获取当前用户的超级群未读 @ 消息数总和
获取当前登录用户加入的超级群所有会话的未读 @ 消息数的总和。
接口
Java
class ResultCallback {
onSuccess(Integer count)
onError(ErrorCode code)
}
public void getUltraGroupAllUnreadMentionedCount(IRongCoreCallback.ResultCallback<Integer> callback) {}