融云 Android 端如何清空某一个会话的聊天记录

Posted 刘建伯

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了融云 Android 端如何清空某一个会话的聊天记录相关的知识,希望对你有一定的参考价值。

融云 android 端如何清空某一个会话的聊天记录

实现须知

没有开通 “历史消息云存储”,只能删除本地的数据。在融云控制台开通 “历史消息云存储功能” 后,才可以删除远端消息。

实现步骤

1.调用 cleanHistoryMessages 方法,cleanRemote 传 true ,recordTime 传 当前的时间戳

/**
     * 删除指定时间戳之前的消息,可选择是否同时删除服务器端消息
     * <p>此方法从服务器端清除历史消息,但是必须先开通历史消息云存储功能。</p>
     * <p>根据会话类型和 TargetId 清除某一会话指定时间戳之前的本地数据库消息(服务端历史消息),
     * 清除成功后只能从本地数据库(服务端)获取到该时间戳之后的历史消息。</p>
     *
     * @param conversationType 会话类型。
     * @param targetId         会话目标ID。
     * @param recordTime       清除消息截止时间戳,【0 ~ 当前时间的 Unix 时间戳】。
     * @param cleanRemote      是否删除服务器端消息
     * @param callback         清除消息的回调。
     */
    public void cleanHistoryMessages(final Conversation.ConversationType conversationType,
                                     final String targetId,
                                     final long recordTime,
                                     final boolean cleanRemote,
                                     final OperationCallback callback) 

2.您使用的是 imlib ,还需要自行刷新您的界面。
3.您使用的是 imkit 调用 ConversationFragment 的 getMessageAdapter 方法,获取到会话界面消息展示适配器,移除数据并且刷新数据源。

mListAdapter.removeAll();
mListAdapter.notifyDataSetChanged();

4.卸载重装或者更换设备登陆后,历史消息还可以拉取到,来保证用户更换设备或者卸载重装后还可以有上下文。如果您不希望换端后再收到这些消息,您可以 提供一下 appkey 提交工单,我们帮您把这部分数据的缓存功能关闭。

以上是关于融云 Android 端如何清空某一个会话的聊天记录的主要内容,如果未能解决你的问题,请参考以下文章

IOS集成融云SDK即时通讯

使用融云 IM 点击最近聊天记录时跳转到 @ 自己的消息

环信和融云实现跨应用聊天

融云 Web SDK 删除历史消息

在融云 IMkit 会话界面基础上添加消息已读未读

thinkphp整合系列之融云即时通讯在线聊天