我通过消息id来查找消息退出,但发现刚发出去消息的id是个时间戳po message.messageId
1526464149293.982
代码如下:

[conversation queryMessagesWithLimit:10 callback:^(NSArray * _Nullable array, NSError * _Nullable error) {
                    for (int i = 0; i < array.count; i++) {
                        AVIMMessage *mess = array[i];
                        NSLog(@"%@----%@",mess.messageId,message.messageId);
                        if ([message.messageId isEqualToString:mess.messageId]) {
                            [conversation recallMessage:mess callback:^(BOOL succeeded, NSError * _Nullable error, AVIMRecalledMessage * _Nullable recalledMessage) {
                                if (succeeded) {
                                    NSLog(@"Message has been recalled.");
                                }
                            }];
                        }
                    }
                }];

另外撤回成功的页面没反应,再次进来显示不支持的消息类型,我已经实现了代理方法:

/* 实现 delegate 方法,以处理消息修改和撤回的事件 */
- (void)conversation:(AVIMConversation *)conversation messageHasBeenUpdated:(AVIMMessage *)message {
    /* A message has been updated or recalled. */

    switch (message.mediaType) {
case kAVIMMessageMediaTypeRecalled:
    NSLog(@"message 是一条撤回消息");
    break;
default:
    NSLog(@"message 是一条更新消息");
    break;
}
}

你好.
1. message.messageId 是类似这个格式「6D2M49ZSVuqCqTcZBDXZw」不是时间戳。

如果您有疑问请粘贴相关代码与日志信息。

另外撤回成功的页面没反应,再次进来显示不支持的消息类型,我已经实现了代理方法

2.如果 ClientA 给 ClientB 发送的消息,B 实现了代理方法,ClientA 撤回消息成功后,B 会回调代理方法。

撤回消息本人不会回调 messageHasBeenUpdated。