发送方可以撤回一条已经发送成功的消息。
默认情况下,发送者只能撤回 2 分钟以内的消息,您可以按需更改消息撤回时间限制,具体操作请参见 消息撤回设置。
消息的撤回同时需要接收方 UI 代码的配合:当发送方撤回一条消息后,接收方会收到消息撤回通知 onRecvMessageRevoked
。通知中包含了撤回消息的 msgID,您可以根据这个 msgID 判断 UI 层是哪一条消息撤回了,然后把对应的消息气泡切换成 "消息已被撤回" 状态。
发送方可调用 revokeMessage
(Android / iOS & Mac / Windows) 撤回一条消息。
示例代码如下:
V2TIMManager.getMessageManager().revokeMessage(v2TIMMessage, new V2TIMCallback() {
@Override
public void onError(int code, String desc) {
// 撤回消息失败
}
@Override
public void onSuccess() {
// 撤回消息成功
}
});
addAdvancedMsgListener
(Android / iOS & Mac / Windows) 设置高级消息监听。onRecvMessageRevoked
(Android / iOS & Mac / Windows) 中接收消息撤回通知。示例代码如下:
V2TIMManager.getMessageManager().addAdvancedMsgListener(new V2TIMAdvancedMsgListener() {
@Override
public void onRecvMessageRevoked(String msgID) {
// msgList 为当前聊天界面的消息列表
for (V2TIMMessage msg : msgList) {
if (msg.getMsgID().equals(msgID)) {
// msg 即为被撤回的消息,您需要修改 UI 上相应的消息气泡的状态
}
}
}
}
本页内容是否解决了您的问题?