写点什么

使用融云 Web SDK 撤回消息

发布于: 2021 年 03 月 16 日

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


参考文档: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,只能坐等更新啦


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


用户头像

还未添加个人签名 2021.01.26 加入

还未添加个人简介

评论

发布
暂无评论
使用融云 Web SDK 撤回消息