tencent cloud

文档反馈

最后更新时间:2024-02-06 17:19:50

    功能描述

    用户在登录 App 后,可以展示最近会话列表,方便找到目标会话。
    会话列表功能主要分为获取会话列表、处理会话列表更新。 本文将为您介绍具体的实现细节。

    获取会话列表

    您可以调用 ConvGetConvList(点击查看详情) 获取会话列表。该接口拉取的是本地缓存的会话,如果服务器会话有更新,SDK 内部会自动同步,然后在 TIMConvEventCallback 回调告知客户。
    用户的会话以列表的形式返回,列表中存储的是 ConvInfo 对象。
    示例代码如下:
    TIMResult res = TencentIMSDK.ConvGetConvList((int code, string desc, List<ConvInfo> info_list, string user_data)=>{
    // 处理异步逻辑
    });

    会话列表更新

    IM SDK 会在登录成功后、用户上线后、以及断线重连后,自动更新会话列表。 为了获取会话列表的更新,您需要操作如下几步:
    1. 添加会话监听器。
    2. 接收会话变更通知并处理。
    3. 移除会话监听器。非必须,可按照业务逻辑按需调用。

    添加会话监听器

    您可以调用 SetConvEventCallback(点击查看详情) 添加会话监听器。添加监听器后,您才能接收到会话变更事件。
    示例代码如下:
    TencentIMSDK.SetConvEventCallback((TIMConvEvent conv_event, List<ConvInfo> conv_list, string user_data)=>{
    // 处理回调逻辑
    });
    您可以监听 TIMConvEvent(点击查看详情) 中的事件,获取会话列表变更的通知。
    目前 IM SDK 支持的会话变更事件有:
    事件
    说明
    建议
    kTIMConvEvent_Add
    有会话新增
    例如收到一个新同事发来的单聊消息、被拉入了一个新的群组中,此时可以重新对会话列表做排序。
    kTIMConvEvent_Del
    有会话删除
    例如自己删除某会话时会触发。
    kTIMConvEvent_Update
    有会话更新
    例如会话内消息的未读计数变化和收到新消息时触发。
    kTIMConvEvent_Start
    会话开始
    -
    kTIMConvEvent_Finish
    会话结束
    -

    移除会话监听器

    您可以调用 RemoveConvEventCallback(点击查看详情) 移除指定会话监听器,传入 null 移除所有会话监听器。移除后,您将无法再接收到会话变更事件。 该步骤不是必须的,您可以按照自己的业务逻辑按需调用。
    示例代码如下:
    TencentIMSDK.RemoveConvEventCallback();

    发送不更新 conv_last_msg 的消息

    会话列表界面,通常需要展示每个会话的最新一条消息预览及发送时间,此时您可以使用 ConvInfoconv_last_msg 作为数据源实现。但是某些场景下,如果您不希望一些消息(例如系统提示等)显示为会话的最新消息,可以在 MsgSendMessage 时设置 message_excluded_from_last_messagefalse/no
    发送消息参见 发送消息
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持