Unity
功能描述
消息搜索只能搜索本地存储的消息,比如接收到的消息、调用拉取历史消息接口得到的消息等。
说明:
旗舰版才支持
消息搜索类介绍
消息搜索参数类
MessageSearchParam
的参数说明如下:参数 | 含义 | 说明 |
msg_search_param_keyword_array | 关键字列表 | 最多支持 5 个。当消息发送者以及消息类型均未指定时,必须设置关键字列表;否则,关键字列表可以为空。 |
msg_search_param_keyword_list_match_type | 指定关键字列表匹配类型 | 可设置为 “或” 关系搜索,或 “与” 关系搜索。取值分别为 TIMKeywordListMatchType_Or 和 TIMKeywordListMatchType_And。默认为 “或” 关系搜索。 |
msg_search_param_send_indentifier_array | 指定 userID 发送的消息 | 最多支持 5 个。 |
msg_search_param_message_type_array | 指定搜索的消息类型集合 | |
msg_search_param_conv_id | 搜索 “全部会话” 还是搜索 “指定的会话” | msg_search_param_conv_id msg_search_param_conv_id 不为空,搜索指定会话。 |
msg_search_param_search_time_position | 搜索的起始时间点 | 默认为 0(从现在开始搜索)。UTC 时间戳,单位:秒。 |
msg_search_param_search_time_period | 从起始时间点开始的过去时间范围 | 默认为 0(不限制时间范围)。24x60x60 代表过去一天。单位:秒。 |
msg_search_param_page_index | 分页的页号 | 用于分页展示查找结果,0 表示首页。 |
msg_search_param_page_size | 每页结果数量 | 用于分页展示查找结果,如不希望分页可将其设置成 0。但如果结果数量太多,一次性拉取可能会引发性能问题。 |
消息搜索结果类
参数 | 含义 | 说明 |
msg_search_result_total_count | 搜索结果总数 | 如果搜索指定会话,返回满足搜索条件的消息总数; 如果搜索全部会话,返回满足搜索条件的消息所在的所有会话总数量。 |
msg_search_result_item_array | 指定关键字列表匹配类型 | 如果搜索指定会话,返回结果列表只包含该会话结果; 如果搜索全部会话,会对满足搜索条件的消息根据会话 ID 分组,分页返回分组结果。 |
参数 | 含义 | 说明 |
msg_search_result_item_conv_id | 会话 ID | —— |
msg_search_result_item_total_message_count | 消息数量 | 当前会话一共搜索到了多少条符合要求的消息。 |
msg_search_result_item_message_array | 满足搜索条件的消息列表 | 如果搜索指定会话,messageList 中装载的是本会话中所有满足搜索条件的消息列表。 如果搜索全部会话,messageList 中装载的消息条数会有如下两种可能: 如果某个会话中匹配到的消息条数 > 1,则 messageList 为空,您可以在 UI 上显示 “{messageCount} 条相关记录”。 如果某个会话中匹配到的消息条数 = 1,则 messageList 为匹配到的那条消息,您可以在 UI 上显示之,并高亮匹配关键词。 |
msg_search_result_item_conv_type | 会话类型 |
搜索全部会话的消息
如果您希望在全部会话范围内搜索,只需要将
MessageSearchParam
中的 msg_search_param_conv_id
设置为空(null
)或者不设置即可。示例代码如下:
// 通过关键词搜索本地消息MessageSearchParam param = new MessageSearchParam{msg_search_param_keyword_array = new List<string>{"关键词1"},msg_search_param_page_index = 0,msg_search_param_page_size = 10,msg_search_param_conv_type = TIMConvType.kTIMConv_C2C};TIMResult res = TencentIMSDK.MsgSearchLocalMessages(param, (int code, string desc, MessageSearchResult result, string user_data)=>{// 处理异步逻辑});
搜索指定会话的消息
示例代码如下:
// 通过执行会话id和关键词搜索本地消息MessageSearchParam param = new MessageSearchParam{msg_search_param_keyword_array = new List<string>{"关键词1"},msg_search_param_page_index = 0,msg_search_param_page_size = 10,msg_search_param_conv_id = "group_id"};TIMResult res = TencentIMSDK.MsgSearchLocalMessages(param, (int code, string desc, MessageSearchResult result, string user_data)=>{// 处理异步逻辑});