LeanCloud的开发者们,你好:
我们在使用LeanCloud的聊天产品,现在需要实现客户端删除聊天消息的功能,请问能否实现?如何实现?如果不能实现,可有什么workaround?
场景描述:我在一个群中聊天,或许是因为群里有不好的言论或怎样,我想删除其中的一条或多条消息,请问我要如何删除?
我们现在只允许通过 masterKey 删除聊天记录,不允许用户直接在客户端删除,你可以在云引擎中调用 Rest API 来删除:
https://leancloud.cn/docs/realtime_rest_api.html#删除聊天记录
你好,我们需要删除整个会话里的所有聊天记录。例如A跟B之间聊的那些不能再被其他人发现的私密消息。
单聊状态下可以如何删除?我们看到现在删除聊天记录的API需要我们一个msgid一个msgid的删?
群聊状态下我们也希望可以有删除功能(让自己的app中不再能看到),似乎比较困难(逻辑上讲),如果无法实现暂时就没办法了。
~~另外,通过我们在 https://forum.leancloud.cn/t/leancloud-api/15939/10 中的交流,我们发现删除聊天后再跟对方聊天,聊天记录还在。~~ 这个是我们对「会话」的操作有误,已修复。
我们的app需求是要可以删除聊天记录/删除会话。所以我们当初做删除聊天的尝试也是希望可以直接删除会话记录的。能否解释一下按照其它客户通常的做法,这个会话记录(会话的整个消息记录)要怎么删?或者说要怎么让自己的app中不能再看到这些消息?
参考帖子:
@ylgrgyq
@leeyeh @ylgrgyq 二位好,请问上面的问题可有回音?
我们的目的非常明确,就是希望用户可以在app中删除与其它某人的聊天记录,但不影响其他人app看到的聊天记录。根据你们的经验,这个功能是否可以做?做不了的话,可能对我们来说意味着是一个deal breaker。
作为开发者,非常理解大家都比较忙,只是我们就带着这么一个问题,这样等着,已经等了好几个月了,花去了许多的时间。
AVIMConversation 类有 removeFromLocalCache 方法,请 @jfeng 确认一下。
谢谢回复。
@jfeng 你好,removeFromLocalCache之后,刷新(会连接LC服务器) 之后还会再看到那条消息么?
我们在尝试用自定义消息属性、修改消息的功能来实现。
https://leancloud.cn/docs/realtime_guide-objc.html#消息的修改
会的,removeFromLocalCache 只是把本地缓存的消息删除了,服务器上还是存在的,如果从服务器获取,就会再次出现那条消息;如果展示的时候不从服务器获取,那么还是会显示没有那条消息。而是否会从服务器获取,则是依赖于第一次从服务端获取的消息数量以及本地消息在其中的位置,这涉及到 SDK 内部缓存和服务器一致的一些细节,现在只能说获取/不获取都是有可能发生的。