扩展消息
已发送的消息可增加、修改、删除扩展信息。
适用场景:
当需要为原始消息添加额外状态标记或辅助信息时,可使用消息扩展功能:
- 评论场景:通过为原始消息设置扩展信息,添加评论内容。
- 状态变更场景:如礼物领取、订单状态更新等,通过修改扩展信息,变更消息展示效果。例如,发送礼物消息默认“未领取”,用户点击领取后,将扩展信息更新为“已领取”。
提示
- 每次设置消息扩展将会产生内置通知消息,频繁设置扩展会产生大量消息。
- 仅当发送消息时指定
canIncludeExpansion
值为true
,才可对消息进行扩展。
设置、更新消息扩展信息
通过 updateExpansionForUltraGroupMessage 方法,可为消息新增或更新扩展信息。
接口
JavaScript
RongIMLib.updateExpansionForUltraGroupMessage(expansion, message)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
expansion | object | 是 | 要设置或更新的消息扩展键值对。
|
message | IAReceivedMessage | 是 | 消息对象,通过接收在线消息或拉取历史消息获得。 |
示例代码
参数说明
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)
参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
expansion | string[] | 是 | 要删除的扩展信息 Key 数组。 |
message | IAReceivedMessage | 是 | 消息对象,通过接收在线消息或拉取历史消息获得。 |
示例代码
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)
})