please select
  • UIKit
  • SDK
  • Server APIs
Chat/
SDK/
Unity(Game Solution)/
Conversation/
SDK
  • Run Demo
  • SDK Integration
  • Initialization
  • Login and Logout
  • Message
    • Message Overview
    • Sending Message
    • Receiving Message
    • Historical Message
    • Forwarding Message
    • Modifying Message
    • Deleting Message
    • Clearing Messages
    • Recalling Message
    • Online Message
    • Read Receipt
    • Querying Message
    • Group @ Message
    • Targeted Group Message
    • Notification Muting
    • Message Extension
  • Conversation
    • Conversation Overview
    • Conversation List
    • Getting Conversation
    • Conversation Unread Count
    • Pinning Conversation to the Top
    • Deleting Conversation
    • Conversation Draft
    • Conversation Mark
    • Conversation Group
  • Group
    • Group Overview
    • Group Management
    • Group Profile
    • Group Member Management
    • Group Member Profile
    • Custom Group Attribute
    • Group Counter
  • User
    • User Profile
    • User Status
    • Friend Management
    • Friend List
    • Blocklist
  • Changelog
  • Guideline for Beginners
  • Console Guide
    • Creating and Upgrading an Application
    • Basic Configuration
    • Feature Configuration
    • Account Management
    • Group Management
    • Webhook Configuration
  • Product Introduction
    • Message Management
      • One-to-One Message
      • Message Storage
      • Offline Push
      • Group Message
      • Message Formats
    • Account System
      • Login Authentication
      • Online Status Management
    • Group Related
      • Group System
      • Group Management
    • User Profile and Relationship Chain
      • Profile Management
      • Relationship Chain Management
  • Purchase Guide
    • Billing Overview
    • Pricing
  • Error Codes

Conversation List

Overview

After a user logs in to the application, the list of recent conversations can be displayed to make it easy to locate the target conversation.
The conversation list features include getting the conversation list and processing the conversation list update. This section describes how to implement such features.

Getting the Conversation List

Call the ConvGetConvList API (details) to get the conversation list. This API pulls locally cached conversations. If any server conversation is updated, the SDK will automatically sync the update and notify you in the TIMConvEventCallback callback.
User conversations are returned in a list that stores ConvInfo objects.
Sample code:
TIMResult res = TencentIMSDK.ConvGetConvList((int code, string desc, List<ConvInfo> info_list, string user_data)=>{
// Process the async logic
});

Updating the Conversation List

After the Chat SDK is successfully logged in, or the user goes online, or the connection is re-established after being interrupted, the Chat SDK will automatically update the conversation list. You can get the updated conversation list in the following steps:
1. Add a conversation listener.
2. Receive and process conversation changes.
3. Remove the conversation listener. This step is optional and can be performed as needed.

Adding a conversation listener

Call the SetConvEventCallback API (details) to add a conversation listener to receive conversation change events.
Sample code:
TencentIMSDK.SetConvEventCallback((TIMConvEvent conv_event, List<ConvInfo> conv_list, string user_data)=>{
// Process the callback logic
});
You can listen for the event in TIMConvEvent (details) to get the notification of a conversation list change.
Currently, the Chat SDK supports the following conversation change events:
Event
Description
Suggestion
kTIMConvEvent_Add
A new conversation was added.
Re-sort the conversations when the user receives a one-to-one message from a new colleague or is invited to a new group.
kTIMConvEvent_Del
A conversation was deleted.
Trigger this event when the user deletes a conversation.
kTIMConvEvent_Update
A conversation was updated.
Trigger this event when the unread count of a conversation changes or a new message is received.
kTIMConvEvent_Start
A conversation was started.
-
kTIMConvEvent_Finish
A conversation was ended.
-

Removing a conversation listener

Call the RemoveConvEventCallback API (details) to remove a specified conversation listener to stop receiving conversation change events. If null is passed in, all conversation listeners will be removed. This step is optional and can be performed as needed.
Sample code:
TencentIMSDK.RemoveConvEventCallback();

Sending a message without updating the conv_last_msg

On the UI of conversation list, it is usually necessary to display the preview and send time of the latest message in each conversation. In this case, you can use conv_last_msg of ConvInfo as the data source for implementation. However, in some cases, if you don't want some messages (such as system tips) to be displayed as the latest message in a conversation, you can set message_excluded_from_last_message to false/no when calling MsgSendMessage.
For directions on how to send a message, see here.