在某些场景下,您可能需要对会话进行标记,例如 "会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”等,您可以调用以下接口实现。
说明:
您可以调用 ConvMarkConversation
(点击查看详情) 接口标记或者取消标记会话。
注意:当用户标记了会话,SDK 只是简单记录了会话的标记值,并不会改变会话的底层逻辑,例如标记会话为
kTIMConversationMarkTypeUnread
,会话的底层的未读数并不会发生改变。
标记会话接口入参详解如下:
属性 | 含义 | 说明 |
---|---|---|
conversationIDList | 会话 ID 列表 | 一次标记最大支持 100 个会话 |
markType | 标记类型 | 会话标星、会话标记未读、会话折叠、会话隐藏等 |
enableMark | 标记/取消标记 | 标记或取消标记 |
说明:SDK 提供了四个默认标记("会话标星"、"会话折叠"、"会话隐藏"、“会话标记未读”),如果已有标记不能满足您的需求,您可以自定义扩展标记,扩展标记需要满足以下两个条件:
示例代码如下:
//标记会话
TIMResult res = TencentIMSDK.ConvMarkConversation(new List<string> {
conv_id
}, TIMConversationMarkType.kTIMConversationMarkTypeStar, true, (int code, string desc, List<ConversationOperationResult> results, string user_data)=>{
// 标记会话异步结果
});
会话被标记或者取消标记后,会话 ConvInfo
的 conv_mark_array
(点击查看详情) 字段会发生变更,您可以调用 SetConvEventCallback
(点击查看详情) 接口监听会话变更通知。
示例代码如下:
//设置会话监听器
TencentIMSDK.SetConvEventCallback((TIMConvEvent conv_event, List<ConvInfo> conv_list, string user_data)=>{
// 处理回调逻辑
});
您可以调用 ConvGetConversationListByFilter
(点击查看详情) 接口拉取指定标记会话。
示例代码如下:
//获取会话列表
ConversationListFilter filter = new ConversationListFilter
{
conversation_list_filter_conv_type: TIMConvType.kTIMConv_C2C,//会话类型
conversation_list_filter_mark_type: TIMConversationMarkType.kTIMConversationMarkTypeStar,//会话标记类型
conversation_list_filter_conversation_group: "groupName"//拉取的群组名
};
ulong next_seq = 0; // 拉取游标
uint count = 10; // 拉取数量
//获取会话列表的高级接口
TIMResult res = TencentIMSDK.ConvGetConversationListByFilter(filter, next_seq, count, (int code, string desc, ConversationListResult result, string user_data)=>{
// 获取会话列表异步结果
if (code == 0) {
//拉取成功
bool isFinished = result.conversation_list_result_is_finished; //是否拉取完
next_seq = result.conversation_list_result_next_seq; //后续分页拉取的游标
var conversationList = result.conversation_list_result_conv_list; //此次拉取到的消息列表
//如果没有拉取完,使用返回的nextSeq继续拉取直到isFinished为true
}
});
本页内容是否解决了您的问题?