searchLocalMessages
Description
info
Search local messages.
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron
- React-Native
- Unity
Function Prototype
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,
})
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| conversationID | String | No | Search by conversation, pass null if global search |
| keywordList | List<String> | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | int | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | List<String> | No | Filter by sender uid list, currently unused |
| messageTypeList | List<int> | Yes | Message type list |
| searchTimePosition | int | Yes | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | int | Yes | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | int | Yes | Current page number |
| count | int | Yes | Count per page |
Return Result
| Name | Type | Description |
|---|---|---|
| ~ | SearchResult | Success return |
SearchResult
| Field Name | Field Type | Description |
|---|---|---|
| totalCount | int | Total number of messages retrieved |
| searchResultItems | List<SearchResultItems> | Search results, returns array of searchXXX method caller |
Code Example
SearchResult result = await OpenIM.iMManager.messageManager.searchLocalMessages();
// todo
Function Prototype
- (void)searchLocalMessages:(OIMSearchParam *)param
onSuccess:(nullable OIMMessageSearchCallback)onSuccess
onFailure:(nullable OIMFailureCallback)onFailure;
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| conversationID | NSString | No | Conversation ID, if empty, it's global search |
| keywordList | NSArray<NSString *> | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | NSInteger | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | NSArray<NSString *> | No | Filter by sender uid list, currently unused |
| messageTypeList | NSArray<MessageContentType> | Yes | Message type list |
| searchTimePosition | NSInteger | No | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | NSInteger | No | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | NSInteger | No | Current page number, starting at 1. Invalid when conversationID is empty (global search) |
| count | NSInteger | No | Count per page. Invalid when conversationID is empty (global search) |
Return Result
| Name | Type | Description |
|---|---|---|
| onSuccess | OIMSearchResultInfo | Success return |
| onFailure | OIMFailureCallback | Failure return |
OIMSearchResultInfo
| Field Name | Field Type | Description |
|---|---|---|
| totalCount | NSInteger | Total number of messages retrieved |
| searchResultItems | NSArray< OIMSearchResultItemInfo * > | Search results |
Code Example
OIMSearchParam *param = [OIMSearchParam new];
param.conversationID = @"";
param.keywordList = @[];
[OIMManager.manager searchLocalMessages:param
onSuccess:^(OIMSearchResultInfo * _Nullable result) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
Function Prototype
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)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| callBack | OnBase<SearchResult> | Yes | Callback interface |
| conversationID | String | No | Search by conversation, pass null if global search |
| keywordList | List<String> | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | int | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | List<String> | No | Filter by sender uid list, currently unused |
| messageTypeList | List<int> | Yes | MessageType list |
| searchTimePosition | int | Yes | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | int | Yes | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | int | Yes | Current page number |
| count | int | Yes | Count per page |
Return Result
| Name | Type | Description |
|---|---|---|
| ~ | SearchResult | Success return |
SearchResult
| Field Name | Field Type | Description |
|---|---|---|
| totalCount | int | Total number of messages retrieved |
| searchResultItems | List<SearchResultItems> | Search results, returns array of searchXXX method caller |
Code Example
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);
Function Prototype
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>>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| conversationID | string | No | Search by conversation, pass empty string if global search |
| keywordList | string[] | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | number | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | string[] | No | Filter by sender userID list, currently unused |
| messageTypeList | MessageType[] | Yes | Message type list |
| searchTimePosition | number | Yes | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | number | Yes | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | number | Yes | Current page number |
| count | number | Yes | Count per page |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<WsResponse<SearchMessageResult>> | Success callback |
| Promise.catch() | Promise<WsResponse> | Failure callback |
Code Example
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();
IMSDK.searchLocalMessages({
conversationID: '',
keywordList: ['keyword'],
keywordListMatchType: 0,
senderUserIDList: [],
messageTypeList: [101],
searchTimePosition: 0,
searchTimePeriod: 0,
pageIndex: 1,
count: 20,
})
.then(({ data }) => {
// Call successful
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
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>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| operationID | string | Yes | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
| conversationID | string | No | Search by conversation, pass empty string if global search |
| keywordList | string[] | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | number | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | string[] | No | Filter by sender userID list, currently unused |
| messageTypeList | MessageType[] | Yes | Message type list |
| searchTimePosition | number | Yes | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | number | Yes | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | number | Yes | Current page number |
| count | number | Yes | Count per page |
Return Result
Use the
openim-uniapp-polyfillpackage to make the function Promise. When calling, you need to usethenandcatchto determine and handle success and failure callbacks.
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<SearchMessageResult> | Success callback |
| Promise.catch() | Promise<CatchResponse> | Failure callback |
Code Example
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) => {
// Call successful
})
.catch(({ errCode, errMsg }) => {
// Call failed
});
Function Prototype
type SearchMessageResult = {
totalCount: number;
searchResultItems: SearchMessageResultItem[];
};
OpenIMSDK.searchLocalMessages( {
conversationID?: string,
keywordList: string[],
keywordListMatchType?: number,
senderUserIDList?: string[],
messageTypeList: MessageType[],
searchTimePosition: number,
searchTimePeriod: number,
pageIndex: number,
count: number,
}, operationID?: string): Promise<SearchMessageResult>
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| operationID | string | No | Operation ID, used to pinpoint issues, keep unique, prefer time+random |
| conversationID | string | No | Search by conversation, pass empty string if global search |
| keywordList | string[] | Yes | Search keyword list, currently only supports single keyword search |
| keywordListMatchType | number | No | Keyword matching mode, 1 represents AND, 2 represents OR, currently unused |
| senderUserIDList | string[] | No | Filter by sender userID list, currently unused |
| messageTypeList | MessageType[] | Yes | Message type list |
| searchTimePosition | number | Yes | Search start time point. Default is 0 which means search from now. UTC timestamp in seconds |
| searchTimePeriod | number | Yes | Past time range from the start time point, in seconds. Default 0 means unlimited range, pass 24x60x60 for past day |
| pageIndex | number | Yes | Current page number |
| count | number | Yes | Count per page |
Return Result
| Parameter Name | Parameter Type | Description |
|---|---|---|
| Promise.then() | Promise<SearchMessageResult> | Success callback |
| Promise.catch() | Promise<OpenIMApiError> | Failure callback |
Code Example
import OpenIMSDK from "@openim/rn-client-sdk";
OpenIMSDK.searchLocalMessages({
conversationID: '',
keywordList: ['keyword'],
keywordListMatchType: 0,
senderUserIDList: [],
messageTypeList: [101],
searchTimePosition: 0,
searchTimePeriod: 0,
pageIndex: 1,
count: 20,
})
.then((data) => {
// Call successful
})
.catch((error) => {
// Call failed
});
Function Prototype
public static void SearchLocalMessages(OnBase<SearchMessageResult> cb, SearchMessagesParams searchParam)
Input Parameters
| Parameter Name | Parameter Type | Required | Description |
|---|---|---|---|
| cb | OnBase< SearchMessageResult> | Yes | Callback interface |
| searchParam | SearchMessagesParams | Yes | Search parameters |
Return Result
SearchMessageResult
| Field Name | Field Type | Description |
|---|---|---|
| TotalCount | int | Total number of messages retrieved |
| SearchResultItems | List<SearchResultItems> | Search results, returns array of searchXXX method caller |
Code Example
IMSDK.SearchLocalMessages((res,errCode,errMsg)=>{
},new SearchMessagesParams(){
});