- Android
- iOS
- JavaScript
- Flutter
- 鸿蒙
只允许撤回自己发送的消息。撤回成功后,对应会话中的其他用户会收到 onMessageRecall 回调(需要添加消息监听)
参数说明
| 名称 | 类型 | 描述 | 版本 |
|---|---|---|---|
| messageId | String | 消息 id | 1.0.0 |
| extras | Map<String, String> | 扩展信息 | 1.0.0 |
| callback | IRecallMessageCallback | 回调 | 1.0.0 |
示例代码
Map<String, String> extras = new HashMap<>();
extras.put("key1", "value1");
JIM.getInstance().getMessageManager().recallMessage("messageId1", extras, new IMessageManager.IRecallMessageCallback() {
@Override
public void onSuccess(Message message) {
}
@Override
public void onError(int errorCode) {
}
});
只允许撤回自己发送的消息。撤回成功后,对应会话中的其他用户会收到 messageDidRecall: 回调(需要添加消息监听)
参数说明
| 名称 | 类型 | 描述 | 版本 |
|---|---|---|---|
| messageId | NSString | 消息 id | 1.0.0 |
| extras | NSDictionary <NSString *, NSString *> | 扩展信息,key 和 value 都必须为 NSString | 1.0.0 |
| successBlock | 成功回调 | 1.0.0 | |
| errorBlock | 失败回调 | 1.0.0 |
示例代码
NSMutableDictionary *extras = [NSMutableDictionary dictionary];
[extras setObject:@"value1" forKey:@"key1"];
[JIM.shared.messageManager recallMessage:@"messageId1" extras:extras success:^(JMessage *message) {
} error:^(JErrorCode errorCode) {
}];
只允许撤回自己发送的消息,群组管理员可以撤群内所有消息,A 撤回发给 B 的消息,撤回成功后,A 的其他设备和 B 会收到 通知消息
参数说明
| 名称 | 类型 | 是否必需 | 描述 | 版本 |
|---|---|---|---|---|
| message | Object | 是 | 消息对象,可在 历史消息 获取消息 | 1.0.0 |
| message.conversationType | Number | 是 | 会话类型 | 1.0.0 |
| message.conversationId | String | 是 | 会话 Id,会话类型是 PRIVATE 时,会话 Id 是接收方的 userId,会话类型是 GROUP 时是群组 Id | 1.0.0 |
| message.messageId | String | 是 | 被撤回的消息 Id | 1.0.0 |
| message.sentTime | Number | 是 | 被撤回的消息的发送时间 | 1.0.0 |
| message.exts | Object | 否 | 撤回消息时的扩展信息 | 1.7.0 |
成功回调
无参数返回,回调触发表示成功
失败回调
| 名称 | 类型 | 描述 | 版本 |
|---|---|---|---|
| error | Object | 发送失败后会有对应的状态码,可以直接查看 error.msg,或者查看 状态码 | 1.0.0 |
示例代码
let { ConversationType } = JIM;
// 实际项目中,可以直接把 SDK 返回 message 对象传入 recallMessage 方法
let message = {
conversationType: ConversationType.PRIVATE,
conversationId: 'userid01',
messageId: 'xxxdkadhdsa',
sentTime: 1702180128970,
exts: {
name: 'xiaoshan',
custom1: 'HaHa',
//... 更多自定义属性
}
};
jim.recallMessage(message).then((result) => {
console.log('recall message successfully');
}, (error) => {
console.log(error);
});
只允许撤回自己发送的消息。撤回成功后,对应会话中的其他用户会收到 onMessageRecall 回调(需要添加消息监听)
参数说明
| 名称 | 类型 | 描述 | 版本 |
|---|---|---|---|
| conver | Conversation | 所属会话 | 1.0.0 |
| msgId | string | 消息 id | 1.0.0 |
| extras | Map<string, string> | 扩展信息 | 1.0.0 |
| callback | IRecallMessageCallback | 回调 | 1.0.0 |
示例代码
let conver = new Conversation("userid1",1)
let extras:HashMap<string,string> = new HashMap()
extras.set("key1","value1")
JuggleIm.instance.getMessageManager().recallMessage(conver,"messageid",extras,(code,msg)=>{
})
只允许撤回自己发送的消息,群组管理员可以撤群内所有消息,A 撤回发给 B 的消息,撤回成功后,A 的其他设备和 B 会收到 通知消息
参数说明
| 名称 | 类型 | 描述 | 版本 |
|---|---|---|---|
| messageId | String | 需要撤回的消息 Id | 0.6.3 |
示例代码
String messageId = 'messageId1';
Result<Message> result = await JuggleIm.instance.recallMessage(messageId);