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,
})| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
conversationID | string | 是 | 消息所属的会话 ID。 |
clientMsgID | string | 是 | 要置顶或取消置顶的客户端消息 ID。 |
pinned | boolean | 是 | true 表示置顶,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)重新查询方式见查询会话置顶消息。
这个页面有帮助吗?