SDKsuni-app商业版
置顶或取消置顶消息
商业版修改会话消息置顶状态并处理变化事件。
setConversationPinnedMsg() 与 onChangedPinnedMsg 属于商业版。
参数说明
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
conversationID | string | 是 | 消息所在的会话 ID。 |
clientMsgID | string | 是 | 要置顶或取消置顶的消息 ID。 |
pinned | boolean | 是 | true 表示置顶,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()。
这个页面有帮助吗?