SDKsiOS
按 ID 查找消息
使用 iOS SDK 按 conversationID 与 clientMsgID 定位消息。
通过指定会话 ID 和客户端消息 ID 列表,可调用查找消息列表接口在本地精准定位一条或多条历史消息。
OIMFindMessageListParam *query = [OIMFindMessageListParam new];
query.conversationID = conversationID;
query.clientMsgIDList = @[clientMsgID];
[[OIMManager manager] findMessageList:@[query]
onSuccess:^(OIMSearchResultInfo * _Nullable result) {
OIMSearchResultItemInfo *item = result.findResultItems.firstObject;
OIMMessageInfo *message = item.messageList.firstObject;
if (message != nil) {
[self openMessage:message conversationID:item.conversationID];
}
}
onFailure:^(NSInteger code, NSString * _Nullable msg) {
// 处理查询失败
}];参数说明
paramList:查询参数数组(NSArray<OIMFindMessageListParam *>),支持同时传入多个会话的查询条件。- 每个
OIMFindMessageListParam对象包含: conversationID:目标会话 ID。clientMsgIDList:待查找的客户端消息 ID 列表(NSArray<NSString *>)。
返回结果
onSuccess:返回OIMSearchResultInfo搜索结果对象。totalCount:查找到的消息总数。findResultItems:按会话分组的查找结果列表(NSArray<OIMSearchResultItemInfo *>)。每个结果对象包含conversationID和对应的messageList。onFailure:查询失败回调,返回错误码code和错误信息msg。
客户端状态合并
- 查找消息接口仅读取本地数据快照,不会触发新消息接收事件。
- 当本地数据库尚未同步、消息已被删除或指定的客户端消息 ID 不存在时,对应结果列表中将不包含该消息。业务层应依据
conversationID与clientMsgID对应匹配,避免依赖数组下标顺序。
这个页面有帮助吗?