跳到主要内容

扩展消息

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

适用场景

当需要为原始消息添加额外状态标记或辅助信息时,可使用消息扩展功能:

  • 评论场景:通过为原始消息设置扩展信息,添加评论内容。
  • 状态变更场景:如礼物领取、订单状态更新等,通过修改扩展信息,变更消息展示效果。例如,发送礼物消息默认“未领取”,用户点击领取后,将扩展信息更新为“已领取”。
提示
  • 每次设置消息扩展将会产生内置通知消息,频繁设置扩展会产生大量消息。
  • 仅当发送消息时指定 canIncludeExpansion 值为 true,才可对消息进行扩展。

设置、更新消息扩展信息

通过 updateExpansionForUltraGroupMessage 方法,可为消息新增或更新扩展信息。

接口

JavaScript
RongIMLib.updateExpansionForUltraGroupMessage(expansion, message)

参数说明

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

示例代码

参数说明

javascript
const expansion = { key1: 'value1' };
const message = {} // 需要设置的消息,类型为 IAReceivedMessage
const res = await RongIMLib.updateExpansionForUltraGroupMessage(expansion, message);
console.log('设置、更新消息扩展信息结果:', res);

删除消息扩展信息

通过 removeExpansionForUltraGroupMessage 方法,可删除消息扩展中的一个或多个指定 Key。

接口

JavaScript
RongIMLib.removeExpansionForUltraGroupMessage(expansion[], message)

参数说明

参数类型必填说明
expansionstring[]要删除的扩展信息 Key 数组。
messageIAReceivedMessage消息对象,通过接收在线消息或拉取历史消息获得。

示例代码

javascript
const expansion = ['key1'];
const message = {} // 需要设置的消息,类型为 IAReceivedMessage
const res = await RongIMLib.removeExpansionForUltraGroupMessage(expansion, message);
console.log('删除消息扩展结果:', res);

监听消息扩展通知

可通过监听 Events.ULTRA_GROUP_MESSAGE_EXPANSION_UPDATED 事件,实时接收消息扩展信息变更通知。

示例代码

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