跳到主要内容

扩展消息

已发送的消息可增加、修改、删除扩展信息。

适用场景

原始消息增加状态标识的需求,都可使用消息扩展。

  • 消息评论需求,可通过设置原始消息扩展信息的方式添加评论信息。
  • 礼物领取、订单状态变化需求,通过此功能改变消息显示状态。 例如:向用户发送礼物,默认为未领取状态,用户点击后可设置消息扩展为已领取状态。
提示
  • 每次设置消息扩展将会产生内置通知消息,频繁设置扩展会产生大量消息。
  • 仅当发送消息时指定 canIncludeExpansion 值为 true,才可对消息进行扩展。

设置、更新消息扩展信息

updateExpansionForUltraGroupMessage

参数说明

参数类型说明
expansionObject要更新的消息扩展信息键值对,类型是 Object。
  • Key 支持大小写英文字母、数字、 特殊字符+ = - _ 的组合方式,不支持汉字。最大 32 个字符。
  • (SDK < 5.3.0)Value 最大 64 个字符
  • (SDK ≧ 5.3.0)Value 最大 4096 个字符
messageIAReceivedMessage通过接收在线消息或拉取历史消息从 IMLib 取得的消息实例

代码示例

RongIMLib.updateExpansionForUltraGroupMessage(
{ key1: 'val1', key2: 'val2' },
message
).then((res) => {
if (res.code === 0) {
console.log(res.code, '更新成功')
} else {
console.log(res.code, res.msg)
}
})

删除消息扩展信息

removeExpansionForUltraGroupMessage

参数说明

参数类型说明
keyArrayArray消息扩展信息中待删除的 key 的列表,类型是 Array。
messageIAReceivedMessage通过接收在线消息或拉取历史消息从 IMLib 取得的消息实例

代码示例

RongIMLib.removeExpansionForUltraGroupMessage(['key1', 'key2'], message).then(
(res) => {
if (res.code === 0) {
console.log(res.code, '删除成功')
} else {
console.log(res.code, res.msg)
}
}
)

监听消息扩展通知

可通过监听 Events.ULTRA_GROUP_MESSAGE_EXPANSION_UPDATED 事件来捕获消息的扩展信息变更通知。 ​

RongIMLib.addEventListener(RongIMLib.Events.ULTRA_GROUP_MESSAGE_EXPANSION_UPDATED, (messageList) => {
console.log(messageList)
})