Closed liaovq closed 9 months ago
demo 上是否可以复现?
demo 复现不了,问题区别在于收到 RecallMessageEvent 撤回的 event 后,我们项目中拿到的新 message content 依然是 TextMessageContent,而 demo 中这个 event 拿到的是 RecallNotificationContent,其他调用方式与用法与 demo 无异
不科学呀,你确认下,你撤回方撤回的消息的messageUid
和RecallMessageEvent
里面的messageUid
是否一致?另外,你是调用哪个接口进行撤回的?
撤回接口掉的这个,消息是同一条,只是接收方触发 RecallMessageEvent 拿到的新 message 的 content 类型不对,数据我在造
Imclient.recallMessage(
messageUid,
() => debugPrint('recall message success'),
(e) => Toast.showWarn('Delete failed'),
);
用户A给B发消息后,A撤回调用 Imclient.recallMessage 的时候 messageUid 为
但同时用户 B 收到 RecallMessageEvent 的时候,messageUid 不是同一个 ![Uploading Snipaste_2023-11-08_19-21-19.png…]()
你这样确认下,别人撤回消息,你杀进程,然后重启 app,在进入会话里面,看看会话里面的消息,显示的撤回提示,还是原始消息。
还有更新下你们代码,确保和demo 是一致的
接上面的回复,撤回的消息是77762,用户B杀掉再进来 77762 是 text content ![Uploading Snipaste_2023-11-08_19-29-14.png…]()
sdk 早上刚更新过,全部用 demo 里的 sdk 覆盖的我们项目里
已解决,原因是:
修改了撤回消息的存储属性,撤回消息的存储属性,一定不能修改:
const recallNotificationContentMeta = MessageContentMeta(
MESSAGE_CONTENT_TYPE_RECALL,
MessageFlag.PERSIST,
RecallNotificationContentCreator);
普通群员撤回消息后,自己和别人(包括群主和管理员)可以看到撤回后的提示; 群主和管理员撤回消息后,只有自己可以看到撤回后的提示,其他人看到的依然是原消息内容;