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

置顶或取消置顶消息

商业版修改会话消息置顶状态并处理变化事件。

复制

setConversationPinnedMsg()onChangedPinnedMsg 属于商业版

参数说明

参数类型是否必填说明
conversationIDstring消息所在的会话 ID。
clientMsgIDstring要置顶或取消置顶的消息 ID。
pinnedbooleantrue 表示置顶,false 表示取消置顶。
import {
  off,
  onChangedPinnedMsg,
  setConversationPinnedMsg,
} from '@/uni_modules/unix-openim-sdk'

const pinnedSubscription = onChangedPinnedMsg((payload) => {
  refreshPinnedMessagesAfterValidJson(payload)
})
await setConversationPinnedMsg({
  conversationID,
  clientMsgID: message.clientMsgID,
  pinned: true,
})

function removePinnedListener() {
  off(pinnedSubscription)
}

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

本页唯一归属 onChangedPinnedMsg。事件是 raw JSON 字符串,应先校验,再按 conversationID 替换置顶集合并按消息 clientMsgID 去重;不要把未验证 payload 强转为消息对象。组件卸载、退出登录或切换账号时调用 removePinnedListener()