findMessageList
功能介绍
说明
根据消息 ID 查找本地消息。
注意
仅支持已经拉取到本地的消息。
- iOS
- Android
- Flutter
- uni-app
- Browser/Electron/MiniProgram
- React-Native
- Unity
函数原型
Future<SearchResult> findMessageList({
required List<SearchParams> searchParams,
String? operationID,
})
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
SearchParams.conversationID | String | 是 | 会话 ID |
SearchParams.clientMsgIDList | List<String> | 是 | 消息 ID 列表 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | SearchResult | 成功返回 |
SearchResult
字段名称 | 字段类型 | 描述 |
---|---|---|
totalCount | int | 获取到的总的消息数量 |
findResultItems | List<SearchResultItems> | 搜索结果 调用 findXX 方法返回 |
代码示例
SearchResult result = await OpenIM.iMManager.messageManager.findMessageList(
searchParams: [
SearchParams(
clientMsgIDList: [],
conversationID: '',
)
],
);
// todo
函数原型
- (void)findMessageList:(NSArray<OIMFindMessageListParam *> *)param
onSuccess:(nullable OIMMessageSearchCallback)onSuccess
onFailure:(nullable OIMFailureCallback)onFailure;
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
OIMFindMessageListParam.conversationID | NSSting | 是 | 会话 ID,如果不为空则以会话 ID 获取,否则通过 userID 和 groupID 获取 |
OIMFindMessageListParam.clientMsgIDList | NSArray <NSString *> | 是 | 起始的消息 clientMsgID,第一次拉取为"" |
返回结果
名称 | 类型 | 描述 |
---|---|---|
onSuccess | OIMSearchResultInfo | 成功返回 |
onFailure | OIMFailureCallback | 失败返回 |
OIMSearchResultInfo
字段名称 | 字段类型 | 描述 |
---|---|---|
totalCount | NSInteger | 获取到的总的消息数量 |
searchResultItems | NSArray< OIMSearchResultItemInfo * > | 搜索结果 |
代码示例
OIMFindMessageListParam *param = [OIMFindMessageListParam new];
param.conversationID = @"";
param.clientMsgIDList = @[];
[OIMManager.manager findMessageList:@[param]
onSuccess:^(OIMSearchResultInfo * _Nullable result) {
} onFailure:^(NSInteger code, NSString * _Nullable msg) {
}];
函数原型
public void findMessageList(OnBase<SearchResult> base, List<SearchParams> searchParams)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
callBack | OnBase<TypeKeySetResult> | 是 | 回调接口 |
SearchParams | List<SearchParams> | 是 |
返回结果
名称 | 类型 | 描述 |
---|---|---|
~ | TypeKeySetResult | 成功返回 |
代码示例
OpenIMClient.getInstance().messageManager. findMessageList(new OnBase<SearchResult>() {
public void onError(int code, String error) {
}
public void onSuccess(SearchResult data) {
}
},searchParams);
// todo
函数原型
type FindMessageResult = {
totalCount: number;
findResultItems: SearchMessageResultItem[];
};
IMSDK.findMessageList({
conversationID: string;
clientMsgIDList: string[];
}[], operationID?: string): Promise<WsResponse<FindMessageResult>>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
conversationID | string | 是 | 会话 ID |
clientMsgIDList | string[] | 是 | 消息 ID 列表 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<WsResponse<FindMessageResult>> | 调用成功回调 |
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.findMessageList([
{
conversationID: 'conversation id',
clientMsgIDList: ['msgid'],
},
])
.then(({ data }) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
type FindMessageResult = {
totalCount: number;
findResultItems: SearchMessageResultItem[];
};
IMSDK.asyncApi('findMessageList', operationID: string, {
conversationID: string,
clientMsgIDList: string[]
}): Promise<FindMessageResult>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
conversationID | string | 是 | 会话 ID |
clientMsgIDList | string[] | 是 | 消息 ID |
返回结果
通过
openim-uniapp-polyfill
包将函数 Promise 化,调用时需要使用then
和catch
判断并处理成功和失败回调。
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<FindMessageResult> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import IMSDK from 'openim-uniapp-polyfill';
IMSDK.asyncApi('findMessageList', IMSDK.uuid(), {
conversationID: '',
clientMsgIDList: ['msgid'],
})
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
OpenIMSDKRN.findMessageList({
conversationID: string,
clientMsgIDList: string[]
}, operationID: string): Promise<FindMessageResult>
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
conversationID | string | 是 | 会话 ID |
clientMsgIDList | string[] | 是 | 消息 ID |
operationID | string | 是 | 操作 ID,用于定位问题,保持唯一,建议用当前时间和随机数 |
返回结果
参数名称 | 参数类型 | 描述 |
---|---|---|
Promise.then() | Promise<FindMessageResult> | 调用成功回调 |
Promise.catch() | Promise<CatchResponse> | 调用失败回调 |
代码示例
import OpenIMSDKRN from 'open-im-sdk-rn';
OpenIMSDKRN.findMessageList(
{
conversationID: '',
clientMsgIDList: ['msgid'],
},
'operationID'
)
.then((data) => {
// 调用成功
})
.catch(({ errCode, errMsg }) => {
// 调用失败
});
函数原型
public static void FindMessageList(OnBase<FindMessageResult> cb, ConversationArgs[] findMessageOptions)
输入参数
参数名称 | 参数类型 | 是否必填 | 描述 |
---|---|---|---|
cb | OnBase< FindMessageResult> | 是 | 回调接口 |
findMessageOptions | ConversationArgs[] | 是 |
FindMessageResult
字段名称 | 字段类型 | 描述 |
---|---|---|
TotalCount | int | 获取到的总的消息数量 |
FindResultItems | List< SearchResultItem > | 搜索结果 |
代码示例
IMSDK.FindMessageList((result,errCode,errMsg)=>{
},findMessageOptions);