项目根据融云的文档已经完成了简单的聊天功能,现在需要完成的需求是能对发送成功的消息能够撤回

参考文档:https://docs.rongcloud.cn/v4/views/im/noui/guide/private/msgmanage/msgrecall/web.html

参考代码:

var conversation = im.Conversation.get({
targetId: '接收方的 userId',
type: RongIMLib.CONVERSATION_TYPE.PRIVATE
});

conversation.recall({
messageUId: 'BH5T-JG24-C445-IKQM',
sentTime: 1585638211857
}).then(function(message){
console.log('撤回消息成功', message);
});

根据文档集成,完全没有问题,消息能够撤回且原消息将被删除,但是这里有两个问题:

1、获取历史消息时,撤回消息都在最后面,我该如何确认该消息的原位置? 2、当我撤回该消息的最后一条时,获取会话列表数据中的最后一条消息 latestMessage 还是显示之前的撤回消息,这个该怎么处理?

综上的问题,都到融云开发者后台提工单查找了解决方法:

如何确认该消息的原位置:在发送成功的撤回消息中有 sentTime 字段,可以在历史消息中通过比较 sentTime 来确认撤回消息的具体位置

会话列表 latestMessage 显示之前的撤回消息:跟融云的技术人员沟通过后得到的结论是,该问题是融云发现的已知问题,会在下个 SDK 版本修复。我目前使用的 SDK 版本是 3.0.7.1,只能坐等更新啦

总结:希望能帮到碰到同样问题的童鞋,当然在集成的时候看文档还是很重要的,融云有提工单的服务还是蛮不错的,在碰到实在处理不了的问题可以寻求融云的技术人员帮忙,希望融云越做越好


融云RongCloud
82 声望1.2k 粉丝

因为专注,所以专业