浏览 SDKs · Android
平台
SDKsAndroid商业版

修改消息

修改已发送消息的内容,并在各端同步更新后的消息对象。

复制

在线编辑并更新已发送消息的正文内容。通常以原消息对象为基础修改支持编辑的字段(如文本内容),并保留原始的标识字段后重新提交。

// 复制原消息并修改正文字段
Message modifiedMessage = originalMessage;
modifiedMessage.getTextElem().setContent("这是修改后的最新内容");

OpenIMClient.getInstance().messageManager.modifyMessage(
    new OnBase<String>() {
        @Override
        public void onSuccess(String data) {
            // 消息修改成功
        }

        @Override
        public void onError(int code, String error) {
            // 处理修改失败
        }
    },
    modifiedMessage
);

参数说明

参数类型是否必填说明
baseOnBase<String>是异步请求回调。
messageMessage是包含修改后正文的消息对象,必须保留原始的 clientMsgID、serverMsgID 及会话关联字段。

返回结果

成功回调中的 data 返回确认信息。

监听消息修改事件

消息修改成功后,会话中的其他在线端将通过 OnAdvanceMsgListener.onMessageModified 接收包含最新正文的完整 Message 对象:

@Override
public void onMessageModified(Message message) {
    // message 为修改后的最新消息,按 message.getClientMsgID() 刷新列表内容
}

客户端在收到修改事件后,应以 clientMsgID 为标识更新当前消息列表中对应项的内容,并显示“已编辑”状态标识。