NIMSDK-iOS
载入中...
搜索中...
未找到
NIMMessageSearchOption.h
浏览该文件的文档.
1//
2// NIMMessageSearchOption.h
3// NIMLib
4//
5// Created by Netease.
6// Copyright (c) 2015 Netease. All rights reserved.
7//
8
9#import <Foundation/Foundation.h>
10#import "NIMGlobalDefs.h"
11
12NS_ASSUME_NONNULL_BEGIN
13
14@class NIMMessage;
15@class NIMSession;
16/**
17* 云端消息自定义过滤回调
18*
19* @param message 待过滤的消息
20* @discussion 返回YES表示该消息被过滤,不入库不会在历史消息结果中返回;返回NO,表示正常处理该消息。
21*/
23
24
25/**
26 * 搜索顺序
27 */
28typedef NS_ENUM(NSInteger,NIMMessageSearchOrder) {
29 /**
30 * 从新消息往旧消息查询 forward
31 */
33
34 /**
35 * 从旧消息往新消息查询 backward
36 */
38};
39
40
41/**
42 * 本地搜索选项
43 * @discussion 搜索条件: 时间在(startTime,endTime) 内(不包含),类型为 messageTypes (或全类型) ,且匹配 searchContent 或 fromIds 的一定数量 (limit) 消息
44 */
45@interface NIMMessageSearchOption : NSObject
46
47/**
48 * 起始时间,默认为0
49 */
50@property (nonatomic,assign) NSTimeInterval startTime;
51
52
53/**
54 * 结束时间,默认为0
55 * @discussion 搜索的结束时间,0 表示最大时间戳
56 */
57@property (nonatomic,assign) NSTimeInterval endTime;
58
59/**
60 * 检索条数
61 * @discussion 默认100条,设置为0表示无条数限制
62 */
63@property (nonatomic,assign) NSUInteger limit;
64
65/**
66 * 检索顺序
67 *
68 * 默认从旧消息往新消息查询
69 */
70@property (nonatomic,assign) NIMMessageSearchOrder order;
71
72/**
73 * 查询的消息类型
74 * @discusssion 消息类型组合,默认只搜索文本类型, 只有在 allMessageTypes 为 NO 时有效,取值范围为: NIMMessageType 枚举类型
75 */
76@property (nonatomic,copy) NSArray<NSNumber *> *messageTypes;
77
78/**
79* 查询的消息子类型
80* @discusssion 消息子类型组合
81*/
82@property (nonatomic,strong) NSArray<NSNumber *> *messageSubTypes;
83
84/**
85 * 全部消息类型
86 * @discussion 默认为 NO
87 */
88@property (nonatomic,assign) BOOL allMessageTypes;
89
90/**
91 * 检索文本
92 */
93@property (nullable,nonatomic,copy) NSString *searchContent;
94
95/**
96 * 消息发出者帐号列表
97 */
98@property (nullable,nonatomic,copy) NSArray<NSString *> *fromIds;
99
100/**
101 * 将搜索文本中的正则特殊字符转义,默认 YES
102 */
103@property (nonatomic,assign) BOOL enableContentTransfer;
104@end
105
106
107/**
108 * 检索服务器历史消息选项 (服务器)
109 */
110@interface NIMHistoryMessageSearchOption : NSObject
111
112/**
113 * 检索消息起始时间
114 * @discussion 需要检索的起始时间,没有则传入0。
115 */
116@property (nonatomic,assign) NSTimeInterval startTime;
117
118/**
119 * 检索条数
120 * @discussion 最大限制100条
121 */
122@property (nonatomic,assign) NSUInteger limit;
123
124
125/**
126 * 检索消息终止时间,此参数对聊天室会话无效。
127 * @discussion 当前最早的时间,没有则传入 0。
128 */
129@property (nonatomic,assign) NSTimeInterval endTime;
130
131
132/**
133 * 检索消息的当前参考消息,返回的消息结果集里不会包含这条消息,此参数对聊天室会话无效。优先级低于下面的serverId
134 * @discussion 传入最早时间,没有则传入nil。
135 */
136@property (nullable,nonatomic,strong) NIMMessage *currentMessage;
137
138/**
139 * 检索消息的当前参考消息,返回的消息结果集里不会包含这条serverId对应的消息,此参数对聊天室会话无效。优先级高于 上面currentMessage的serverId
140 * @discussion 传入最早时间,没有则传入nil。
141 */
142@property (nullable,nonatomic,copy) NSString *serverId;
143
144
145/**
146 * 检索顺序。
147 */
148@property (nonatomic,assign) NIMMessageSearchOrder order;
149
150/**
151 * 是否需要同步到 db,此参数对聊天室会话无效。
152 * @discussion SDK 删除消息分为两种模式:标记删除和彻底删除(参见 NIMDeleteMessagesOption)。
153 * 若消息集在本地被标记删除,则意味着消息仍存在本地,但被打上了特殊的记号,同步后写入 db 会失败。
154 * 只有不存在本地的消息才可以通过 sync 标记进行 db 存储
155 */
156@property (nonatomic,assign) BOOL sync;
157
158
159/**
160 * 查询的消息类型
161 * @discusssion 消息类型组合,默认为 nil ,搜索全类型。一旦设置了这个字段,则 sync 字段失效,查询结果不会写入 db,需要通过设置syncMessageTypes来同步 。
162 */
163@property (nonatomic,copy) NSArray<NSNumber *> *messageTypes;
164
165/**
166* 是否需要同步特定类型到 db,此参数对聊天室会话无效。
167* @discussion SDK 删除消息分为两种模式:标记删除和彻底删除(参见 NIMDeleteMessagesOption)。
168* 若消息集在本地被标记删除,则意味着消息仍存在本地,但被打上了特殊的记号,同步后写入 db 会失败。
169* 只有不存在本地的消息才可以通过 syncMessageTypes 标记进行 db 存储
170*/
171@property (nonatomic,assign) BOOL syncMessageTypes;
172
173/**
174* 自定义消息过滤
175* @discusssion 自定义外部过滤回调方法。返回YES表示消息被过滤,不入库不回调,返回NO,表示消息正常入库和回调
176* 回调在内部工作线程,注意不要再该回调中执行阻塞或者耗时操作,防止影响内部的消息处理流程。
177*/
178@property (nullable,nonatomic,strong) NIMHistoryMessageFilterBlock customFilter;
179
180/**
181 * 同步云端消息到到本地时,如果消息所在的最近会话不存在,是否自动创建。默认为NO。
182 */
183@property (nonatomic,assign) BOOL createRecentSessionIfNotExists;
184
185@end
186
187
188/**
189 * 服务端消息关键字检索选项
190 * @discussion 搜索条件: 时间在(startTime,endTime) 内(不包含),类型为 messageTypes (或全类型) ,且匹配 searchContent 或 fromIds 的一定数量 (limit) 消息
191 */
193
194/**
195 * 起始时间,默认为0
196 */
197@property (nonatomic,assign) NSTimeInterval startTime;
198
199
200/**
201 * 结束时间,默认为0
202 * @discussion 搜索的结束时间,0 表示最大时间戳
203 */
204@property (nonatomic,assign) NSTimeInterval endTime;
205
206/**
207 * 检索条数
208 * @discussion 默认100条,设置为0表示无条数限制,最多100条
209 */
210@property (nonatomic,assign) NSUInteger limit;
211
212/**
213 * 检索顺序
214 */
215@property (nonatomic,assign) NIMMessageSearchOrder order;
216
217/**
218 * 关键字
219 */
220@property (nullable,nonatomic,copy) NSString *keyword;
221
222@end
223
224
225/**
226 * 服务端消息全量检索选项
227 * @discussion 搜索条件: 时间在(startTime,endTime) 内(不包含),类型为 messageTypes (或全类型) ,且匹配 searchContent 或 fromIds 的一定数量 (limit) 消息
228 */
230
231/**
232 * 关键字
233 */
234@property (nullable,nonatomic,copy) NSString *keyword;
235
236/**
237 * 起始时间,默认为0
238 */
239@property (nonatomic,assign) NSTimeInterval startTime;
240
241
242/**
243 * 结束时间,默认为0
244 * @discussion 搜索的结束时间,0 表示最大时间戳
245 */
246@property (nonatomic,assign) NSTimeInterval endTime;
247
248/**
249 * 消息的检索条数
250 * @discussion 消息条数限制
251 */
252@property (nonatomic,assign) NSUInteger msgLimit;
253
254/**
255 * 会话的检索条数
256 * @discussion 会话条数限制
257 */
258@property (nonatomic,assign) NSUInteger sessionLimit;
259
260/**
261 * 检索结果的排列顺序
262 * @diacussion 如果为true,结果按照升序排列,如果为false,按照时间降序排列
263 */
264@property (nonatomic, assign) BOOL asc;
265
266/**
267 * P2P会话列表
268 * @discussion
269 */
270@property (nullable, nonatomic, copy) NSArray *p2pArray;
271
272/**
273 * 群列表
274 * @discussion
275 */
276@property (nullable, nonatomic, copy) NSArray *teamArray;
277
278/**
279 * 发送方列表
280 * @discussion
281 */
282@property (nullable, nonatomic, copy) NSArray *senderArray;
283
284/**
285 * 消息类型列表
286 * @discussion
287 */
288@property (nullable, nonatomic, copy) NSArray *msgTypeArray;
289
290/**
291 * 消息子类型列表
292 * @discussion
293 */
294@property (nullable, nonatomic, copy) NSArray *msgSubtypeArray;
295
296@end
297
298
299/**
300 * 服务端消息全量检索选项
301 * @discussion 搜索条件: 时间在(startTime,endTime) 内(不包含),类型为 messageTypes (或全类型) ,且匹配 searchContent 或 fromIds 的一定数量 (limit) 消息
302 */
304
305/**
306 * 关键字
307 */
308@property (nullable,nonatomic,copy) NSString *keyword;
309
310/**
311 * 起始时间,默认为0
312 */
313@property (nonatomic,assign) NSTimeInterval startTime;
314
315
316/**
317 * 结束时间,默认为0
318 * @discussion 搜索的结束时间,0 表示最大时间戳
319 */
320@property (nonatomic,assign) NSTimeInterval endTime;
321
322/**
323 * 消息的检索条数
324 * @discussion 消息条数限制
325 */
326@property (nonatomic,assign) NSUInteger msgLimit;
327
328/**
329 * 检索结果的排列顺序
330 * @diacussion 如果为true,结果按照升序排列,如果为false,按照时间降序排列
331 */
332@property (nonatomic, assign) BOOL asc;
333
334/**
335 * P2P会话列表
336 * @discussion
337 */
338@property (nullable, nonatomic, copy) NSArray *p2pArray;
339
340/**
341 * 群列表
342 * @discussion
343 */
344@property (nullable, nonatomic, copy) NSArray *teamArray;
345
346/**
347 * 发送方列表
348 * @discussion
349 */
350@property (nullable, nonatomic, copy) NSArray *senderArray;
351
352/**
353 * 消息类型列表
354 * @discussion
355 */
356@property (nullable, nonatomic, copy) NSArray *msgTypeArray;
357
358/**
359 * 消息子类型列表
360 * @discussion
361 */
362@property (nullable, nonatomic, copy) NSArray *msgSubtypeArray;
363
364@end
365
366
367@interface NIMGetMessagesDynamicallyParam : NSObject <NSCopying>
368
369/**
370 * 会话session。
371 */
372@property (nonatomic, strong) NIMSession *session;
373
374/**
375 * 检索消息起始时间,
376 * @discussion 需要检索的起始时间,时间段的小端,没有则传入0。
377 */
378@property (nonatomic, assign) NSTimeInterval startTime;
379
380/**
381 * 检索条数
382 * @discussion 最大限制100条。0相当于100
383 */
384@property (nonatomic, assign) NSUInteger limit;
385
386
387/**
388 * 检索消息终止时间,此参数对聊天室会话无效。
389 * @discussion 时间段的大端, 没有则传入 0。
390 */
391@property (nonatomic, assign) NSTimeInterval endTime;
392
393
394/**
395 * 检索消息的当前参考消息本地id,返回的消息结果集里不会包含这条msgId对应的消息
396 */
397@property (nullable, nonatomic, copy) NSString *anchorClientId;
398
399/**
400 * 检索消息的当前参考消息服务端id,返回的消息结果集里不会包含这条serverId对应的消息
401 */
402@property (nullable, nonatomic, copy) NSString *anchorServerId;
403
404/**
405 * 检索顺序。
406 */
407@property (nonatomic,assign) NIMMessageSearchOrder order;
408
409
410- (NIMGetMessagesDynamicallyParam *) createStandardizedParam;
411
412@end
413
414NS_ASSUME_NONNULL_END
BOOL(^ NIMHistoryMessageFilterBlock)(NIMMessage *message)
Definition: NIMMessageSearchOption.h:22
NIMMessageSearchOrder
Definition: NIMMessageSearchOption.h:28
@ NIMMessageSearchOrderDesc
Definition: NIMMessageSearchOption.h:32
@ NIMMessageSearchOrderAsc
Definition: NIMMessageSearchOption.h:37
Definition: NIMMessageSearchOption.h:367
Definition: NIMMessageSearchOption.h:111
Definition: NIMMessageSearchOption.h:230
Definition: NIMMessageSearchOption.h:304
Definition: NIMMessage.h:90
Definition: NIMMessageSearchOption.h:46
NSUInteger limit
Definition: NIMMessageSearchOption.h:63
BOOL allMessageTypes
Definition: NIMMessageSearchOption.h:88
BOOL enableContentTransfer
Definition: NIMMessageSearchOption.h:103
NSArray< NSNumber * > * messageSubTypes
Definition: NIMMessageSearchOption.h:82
NSTimeInterval startTime
Definition: NIMMessageSearchOption.h:50
NSArray< NSNumber * > * messageTypes
Definition: NIMMessageSearchOption.h:76
NSTimeInterval endTime
Definition: NIMMessageSearchOption.h:57
NSString * searchContent
Definition: NIMMessageSearchOption.h:93
NIMMessageSearchOrder order
Definition: NIMMessageSearchOption.h:70
NSArray< NSString * > * fromIds
Definition: NIMMessageSearchOption.h:98
Definition: NIMMessageSearchOption.h:193
Definition: NIMSession.h:49