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
.