对于会话里已经发送成功的消息,会话参与者可以对消息做二次修改,修改成功后会同步给会话的所有参与者。
说明:消息变更功能仅增强版 6.2 及以上版本支持。
会话参与者可以调用 modifyMessage
(Android / iOS & Mac) 接口对会话里的消息做二次修改。
修改消息时,IM SDK 仅限制了会话参与者才能修改,如果您需要更多限制,例如限制只有消息发送者才能修改,可以自行在业务层处理。
目前消息支持修改的信息如下:
cloudCustomData
(Android / iOS & Mac) V2TIMTextElem
(Android / iOS & Mac) V2TIMCustomElem
(Android / iOS & Mac)V2TIMLocationElem
(Android / iOS & Mac)V2TIMFaceElem
(Android / iOS & Mac)示例代码如下:
// 会话里面原始消息对象为 originMessage
// 修改消息对的 cloudCustomData 信息
originMessage.setCloudCustomData("modify_cloud_custom_data".getBytes());
// 如果是文本消息,修改文本消息内容
if (V2TIMMessage.V2TIM_ELEM_TYPE_TEXT == originMessage.getElemType()) {
originMessage.getTextElem().setText("modify_text");
}
V2TIMManager.getMessageManager().modifyMessage(originMessage, new V2TIMCompleteCallback<V2TIMMessage>() {
@Override
public void onComplete(int code, String desc, V2TIMMessage message) {
// 修改消息完成,message 为修改之后的消息对象
}
});
会话的参与者调用 addAdvancedMsgListener
(Android / iOS & Mac) 添加高级消息监听器。
当会话里的消息被修改后,会话的参与者都会收到 onRecvMessageModified
(Android / iOS & Mac) 回调,回调里面会携带修改之后的消息对象。
示例代码如下:
本页内容是否解决了您的问题?