searchLocalMessages
功能介绍
说明
搜索本地消息。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
函数原型
Future<SearchResult> searchLocalMessages({
String? conversationID,
List<String> keywordList = const [],
int keywordListMatchType = 0,
List<String> senderUserIDList = const [],
List<int> messageTypeList = const [],
int searchTimePosition = 0,
int searchTimePeriod = 0,
int pageIndex = 1,
int count = 40,
String? operationID,
})
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
conversationID | String | 否 | 根据会话查询,如果是全局搜索传 null |
keywordList | List<String> | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | int | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | List<String> | 否 | 指定消息发送的 uid 列表 暂时未用 |
messageTypeList | List<int> | 是 | 消息类型列表 |
searchTimePosition | int | 是 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | int | 是 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | int | 是 | 当前页数 |
count | int | 是 | 每页数量 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | SearchResult | 成功返回 |
SearchResult
字段名称 | 字段类型 | 描述 |
---|---|---|
totalCount | int | 获取到的总的消息数量 |
searchResultItems | List<SearchResultItems> | 搜索结果 调用 searchXXX 方法返回 |
代码示例
SearchResult result = await OpenIM.iMManager.messageManager.searchLocalMessages();
// todo
函数原型
- (void)searchLocalMessages:(OIMSearchParam *)param
onSuccess:(nullable OIMMessageSearchCallback)onSuccess
onFailure:(nullable OIMFailureCallback)onFailure;
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
conversationID | NSString | 否 | 会话 ID,如果为空,则为全局搜素 |
keywordList | NSArray<NSString *> | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | NSInteger | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | NSArray<NSString *> | 否 | 指定消息发送的 uid 列表,暂时未用 |
messageTypeList | NSArray<MessageContentType> | 是 | 消息类型列表 |
searchTimePosition | NSInteger | 否 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | NSInteger | 否 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | NSInteger | 否 | 当前页数,起始第一页为 1,conversationID 为空时候,即全局搜素情況下,无效 |
count | NSInteger | 否 | 每页数量,conversationID 为空时候,即全局搜素情况下,无效 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
onSuccess | OIMSearchResultInfo | 成功返回 |
onFailure | OIMFailureCallback | 失败返回 |
OIMSearchResultInfo
字段名称 | 字段类型 | 描述 |
---|---|---|
totalCount | NSInteger | 获取到的总的消息数量 |
searchResultItems | NSArray< OIMSearchResultItemInfo * > | 搜索结果 |
代码示例
OIMSearchParam *param = [OIMSearchParam new];
param.conversationID = @"";
param.keywordList = @[];
[OIMManager.manager searchLocalMessages:param
onSuccess:^(OIMSearchResultInfo * _Nullable result) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
函数原型
public void searchLocalMessages(OnBase<SearchResult> base, String conversationID, List<String> keywordList, int keywordListMatchType,
List<String> senderUserIDList, List<Integer> messageTypeList, int searchTimePosition, int searchTimePeriod, int pageIndex
, int count)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
callBack | OnBase<SearchResult> | 是 | 回调接口 |
conversationID | String | 否 | 根据会话查询,如果是全局搜索传 null |
keywordList | List<String> | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | int | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | List<String> | 否 | 指定消息发送的 uid 列表 暂时未用 |
messageTypeList | List<int> | 是 | MessageType 消息类型列表 |
searchTimePosition | int | 是 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | int | 是 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | int | 是 | 当前页数 |
count | int | 是 | 每页数量 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | SearchResult | 成功返回 |
SearchResult
字段名称 | 字段类型 | 描述 |
---|---|---|
totalCount | int | 获取到的总的消息数量 |
searchResultItems | List<SearchResultItems> | 搜索结果 调用 searchXXX 方法返回 |
代码示例
OpenIMClient.getInstance().messageManager.searchLocalMessages(new OnBase<SearchResult>() {
public void onError(int code, String error) {
}
public void onSuccess(SearchResult data) {
}
}, conversationID, keywordList, keywordListMatchType,
senderUserIDList, messageTypeList, searchTimePosition, searchTimePeriod, pageIndex
, count);
函数原型
type SearchMessageResult = {
totalCount: number;
searchResultItems: SearchMessageResultItem[];
};
IMSDK.searchLocalMessages({
conversationID?: string;
keywordList: string[];
keywordListMatchType?: number;
senderUserIDList?: string[];
messageTypeList: MessageType[];
searchTimePosition: number;
searchTimePeriod: number;
pageIndex: number;
count: number;
}, operationID?: string): Promise<WsResponse<SearchMessageResult>>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
conversationID | string | 否 | 根据会话查询,如果是全局搜索传空字符串即可 |
keywordList | string[] | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | number | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | string[] | 否 | 指定消息发送的 userID 列表 暂时未用 |
messageTypeList | MessageType[] | 是 | 消息类型列表 |
searchTimePosition | number | 是 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | number | 是 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | number | 是 | 当前页数 |
count | number | 是 | 每页数量 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<WsResponse<SearchMessageResult>> | 调用成功回调 |
Promise.catch() | Promise<WsResponse> | 调用失败回调 |
代码示例
import { getSDK } from '@openim/wasm-client-sdk';
const IMSDK = getSDK();
// use in electron with ffi
// import { getWithRenderProcess } from '@openim/electron-client-sdk/lib/render';
// const { instance: IMSDK } = getWithRenderProcess();
// use in mini program
// import { OpenIMSDK } from 'open-im-sdk';
// const IMSDK = new OpenIMSDK();
IMSDK.searchLocalMessages({
conversationID: '',
keywordList: ['keyword'],
keywordListMatchType: 0,
senderUserIDList: [],
messageTypeList: [101],
searchTimePosition: 0,
searchTimePeriod: 0,
pageIndex: 1,
count: 20,
})
.then(({ data }) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
type SearchMessageResult = {
totalCount: number;
searchResultItems: SearchMessageResultItem[];
};
IMSDK.asyncApi('searchLocalMessages', operationID: string, {
conversationID?: string;
keywordList: string[];
keywordListMatchType?: number;
senderUserIDList?: string[];
messageTypeList: MessageType[];
searchTimePosition: number;
searchTimePeriod: number;
pageIndex: number;
count: number;
}): Promise<SearchMessageResult>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
conversationID | string | 否 | 根据会话查询,如果是全局搜索传空字符串即可 |
keywordList | string[] | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | number | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | string[] | 否 | 指定消息发送的 userID 列表 暂时未用 |
messageTypeList | MessageType[] | 是 | 消息类型列表 |
searchTimePosition | number | 是 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | number | 是 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | number | 是 | 当前页数 |
count | number | 是 | 每页数量 |
返回结果
通过
openim-uniapp-polyfill
包将函数 Promise 化,调用时需要使用then
和catch
判断并处理成功和失败回调。
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<SearchMessageResult> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('searchLocalMessages', IMSDK.uuid(), {
conversationID: '',
keywordList: ['keyword'],
keywordListMatchType: 0,
senderUserIDList: [],
messageTypeList: [101],
searchTimePosition: 0,
searchTimePeriod: 0,
pageIndex: 1,
count: 20,
})
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
type SearchMessageResult = {
totalCount: number;
searchResultItems: SearchMessageResultItem[];
};
OpenIMSDKRN.searchLocalMessages( {
conversationID?: string,
keywordList: string[],
keywordListMatchType?: number,
senderUserIDList?: string[],
messageTypeList: MessageType[],
searchTimePosition: number,
searchTimePeriod: number,
pageIndex: number,
count: number,
}, operationID: string): Promise<SearchMessageResult>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
conversationID | string | 否 | 根据会话查询,如果是全局搜索传空字符串即可 |
keywordList | string[] | 是 | 搜索关键词列表,目前仅支持一个关键词搜索 |
keywordListMatchType | number | 否 | 关键词匹配模式,1 代表与,2 代表或,暂时未用 |
senderUserIDList | string[] | 否 | 指定消息发送的 userID 列表 暂时未用 |
messageTypeList | MessageType[] | 是 | 消息类型列表 |
searchTimePosition | number | 是 | 搜索的起始时间点。默认为 0 即代表从现在开始搜索。UTC 时间戳,单位:秒 |
searchTimePeriod | number | 是 | 从起始时间点开始的过去时间范围,单位秒。默认为 0 即代表不限制时间范围,传 24x60x60 代表过去一天 |
pageIndex | number | 是 | 当前页数 |
count | number | 是 | 每页数量 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<SearchMessageResult> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from "open-im-sdk-rn";
OpenIMSDKRN.searchLocalMessages({
conversationID: '',
keywordList: ['keyword'],
keywordListMatchType: 0,
senderUserIDList: [],
messageTypeList: [101],
searchTimePosition: 0,
searchTimePeriod: 0,
pageIndex: 1,
count: 20,
}, 'operationID')
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
public static void SearchLocalMessages(OnBase<SearchMessageResult> cb, SearchMessagesParams searchParam)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
cb | OnBase< SearchMessageResult> | 是 | 回调接口 |
searchParam | SearchMessagesParams | 是 | 搜索参数 |
返回结果
SearchMessageResult
字段名称 | 字段类型 | 描述 |
---|---|---|
TotalCount | int | 获取到的总的消息数量 |
SearchResultItems | List<SearchResultItems> | 搜索结果 调用 searchXXX 方法返回 |
代码示例
IMSDK.SearchLocalMessages((res,errCode,errMsg)=>{
},new SearchMessagesParams(){
});