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

置顶或取消置顶消息

使用 UniApp SDK 置顶或取消置顶一条会话消息。

复制

消息置顶属于商业版能力。传 pinned: true 置顶,传 false 取消置顶:

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

const clientMsgID = message.clientMsgID
if (clientMsgID == null) return

await setConversationPinnedMsg({
  conversationID,
  clientMsgID,
  pinned: true,
})
参数类型是否必填说明
conversationIDstring消息所属的会话 ID。
clientMsgIDstring要置顶或取消置顶的客户端消息 ID。
pinnedbooleantrue 表示置顶,false 表示取消置顶。

权限、可置顶的消息类型和数量限制由 OpenIMServer 校验。Promise 成功表示置顶请求已经完成,不表示变更事件已经到达。

接收置顶列表变化

onChangedPinnedMsg() 的载荷类型为 string,SDK 没有公开字符串的内部结构。收到事件后,重新查询当前关注会话的置顶消息,不依赖未公开的对象字段。

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

const handlePinnedMessagesChanged = (_payload: string) => {
  reloadPinnedMessagesForCurrentConversation()
}

const pinnedMessagesSubscription =
  onChangedPinnedMsg(handlePinnedMessagesChanged)

// 页面卸载或账号切换时:
off(pinnedMessagesSubscription)

重新查询方式见查询会话置顶消息