浏览 SDKs · uni-app / uni-app x
平台
SDKsuni-app / uni-app x

获取消息总未读数

查询并持续维护当前账号的会话消息总未读数。

复制

获取当前账号所有会话的消息总未读数。统计总未读数时,避免仅累加当前已加载分页中的 unreadCount,因为尚未分页拉取的会话中也可能包含未读消息。

import { getTotalUnreadMsgCount } from '@/uni_modules/unix-openim-sdk'

const totalUnread = await getTotalUnreadMsgCount()
if (totalUnread != null) {
  updateApplicationBadge(totalUnread)
}

Promise 成功后返回 number | null;非空数值是查询时的总未读数。查询本身不会触发事件。

监听总未读数变化

消息总未读数变更事件在此集中监听。回调参数直接接收最新的总未读数值。

import {
  off,
  onTotalUnreadMessageCountChanged,
} from '@/uni_modules/unix-openim-sdk'

const handleTotalUnreadChanged = (count: number) => {
  updateApplicationBadge(count)
}

const totalUnreadSubscription = onTotalUnreadMessageCountChanged(
  handleTotalUnreadChanged,
)

function removeTotalUnreadListener() {
  off(totalUnreadSubscription)
}

在组件销毁、退出登录或切换账号时应调用清理函数取消事件监听。重新登录、网络重连或需要确认数据一致性时,可再次查询总未读数以校准界面与角标展示。

需要把该数值同步给 SDK 的推送角标状态时,参见设置应用角标数量。