logo
当前页

编辑消息


功能简介

说明

如需使用本功能,请开通旗舰版套餐。

ZIM SDK 支持用户在单聊或群聊中修改已发送的消息,更新内容将实时同步至会话所有成员,确保沟通信息即时一致。

Edit_a_message_zh.png

设置监听

会话参与者注册 on 监听 messageEdited 回调监听消息编辑的相关通知。当其他用户编辑消息后,可以直接获取编辑后的消息的相关信息,包括编辑时间和编辑者等。

示例代码
// 注册事件
zim.on('messageEdited', (zim, { messageList }) => {
    // 收到编辑后的消息列表时,可按照业务需求更新  UI
})
1
Copied!

编辑消息

成功登录 ZIM SDK 后,会话参与者可以调用 editMessage 接口编辑自身已发送的消息(仅支持以下类型的消息:ZIMTextMessageZIMCustomMessageZIMMultipleMessage),支持编辑的属性如下:

  • extendedData:消息拓展字段。
  • isMentionAll:是否需要提醒所有人(@所有人)。
  • mentionedUserIDs:被提醒的用户列表(@某用户)。
  • message: ZIMTextMessageZIMCustomMessage 的消息内容。
  • subType: ZIMCustomMessage 的子类型。
  • messageInfoList: ZIMMultipleMessage 的 item 列表。

随后通过 ZIMMessageEditedResult 得知编辑操作结果。

说明
  • 仅支持编辑 24 小时内的消息,以消息发送的 timestamp 为准。消息的 timestamp 不会因消息编辑而更新。
  • 消息类型不可变更,例如:ZIMTextMessage 无法转换为ZIMCustomMessageZIMMultipleMessage
  • 编辑消息接口对各属性的限制与发送消息接口相关限制一致。
  • 编辑消息会触发服务端 消息发送前回调消息发送后回调
  • 如果您开通了 ZIM 内容审核,消息内容编辑后也会被审核,审核流程和限制等和发送消息时一致。
    • 当消息为文本(先审后发),未通过审核会导致编辑失败,消息内容不会更新。
    • 当消息为图片、语音或视频(先发后审),未通过审核会导致消息撤回,不会恢复为编辑前内容。
示例代码
// 编辑文本消息内容
var messageObj; // 从 queryHistoryMessage 接口获取
messageObj.message = "编辑后的消息内容";

var config = {};
var notification = {
    onMessageAttached: (message) => {},

    // 当编辑的是 ZIMMultipleMessage 并且有本地文件上传时会触发该回调
    onMultipleMediaUploadingProgress: (
        message,
        currentFileSize,
        totalFileSize,
        messageInfoIndex,
        currentIndexFileSize,
        totalIndexFileSize,
    ) => {},
};

zim.editMessage(messageObj, config, notification)
    .then(function ({ message }) {
        // 操作成功
    })
    .catch(function (err) {
        // 操作失败 
    });
1
Copied!

Previous

回复消息

Next

获取会话列表