HyphenateChatSDK 4.15.1
IEMChatManager.h
1
15#import <Foundation/Foundation.h>
16
17#import "EMCommonDefs.h"
18#import "EMChatManagerDelegate.h"
19#import "EMConversation.h"
20
21#import "EMChatMessage.h"
22#import "EMTextMessageBody.h"
23#import "EMLocationMessageBody.h"
24#import "EMCmdMessageBody.h"
25#import "EMFileMessageBody.h"
26#import "EMImageMessageBody.h"
27#import "EMVoiceMessageBody.h"
28#import "EMVideoMessageBody.h"
29#import "EMCustomMessageBody.h"
30#import "EMCombineMessageBody.h"
31#import "EMCursorResult.h"
32
33#import "EMGroupMessageAck.h"
34#import "EMTranslateLanguage.h"
35#import "EMFetchServerMessagesOption.h"
36#import "EMConversationFilter.h"
37
45typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
46 EMMessageFetchHistoryDirectionUp = 0,
47 EMMessageFetchHistoryDirectionDown
49};
50
51
52@class EMError;
53
65@protocol IEMChatManager <NSObject>
66
67@required
68
69#pragma mark - Delegate
70
84- (void)addDelegate:(id<EMChatManagerDelegate> _Nullable)aDelegate
85 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
86
98- (void)removeDelegate:(id<EMChatManagerDelegate> _Nonnull)aDelegate;
99
100#pragma mark - Conversation
101
117- (NSArray<EMConversation *> * _Nullable)getAllConversations;
118
144- (NSArray<EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
145
146
155
177- (NSArray<EMConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
178
190- (void)getConversationsFromServer:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
191
207- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
208 pageSize:(NSUInteger)pageSize
209 completion:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
233- (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
234
254- (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
255
275- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(EMError * _Nullable error))completionBlock;
276
292- (EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
293
317- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
318 type:(EMConversationType)aType
319 createIfNotExist:(BOOL)aIfCreate;
320
348- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
349 type:(EMConversationType)aType
350 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
351
372- (void)deleteConversation:(NSString * _Nonnull)aConversationId
373 isDeleteMessages:(BOOL)aIsDeleteMessages
374 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError *_Nullable aError))aCompletionBlock;
375
398 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
399 conversationType:(EMConversationType)aConversationType
400 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
401 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError * _Nullable aError))aCompletionBlock;
402
423- (void)deleteConversations:(NSArray<EMConversation *> * _Nullable)aConversations
424 isDeleteMessages:(BOOL)aIsDeleteMessages
425 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
426
442- (void)importConversations:(NSArray<EMConversation *> * _Nullable)aConversations
443 completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
444
445#pragma mark - Message
446
461- (EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
462
482- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
483
498- (void)importMessages:(NSArray<EMChatMessage *> * _Nonnull)aMessages
499 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
500
521- (void)updateMessage:(EMChatMessage *_Nonnull)aMessage
522 completion:(void (^_Nullable)(EMChatMessage * _Nullable aMessage, EMError * _Nullable aError))aCompletionBlock;
542- (void)modifyMessage:(NSString *_Nonnull)messageId body:(EMMessageBody *_Nonnull)body completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
543
575- (void)modifyMessage:(NSString *_Nonnull)messageId
576 body:(EMMessageBody *_Nullable)body
577 ext:(NSDictionary* _Nullable)ext
578 completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
579
600- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
601 toUser:(NSString * _Nonnull)aUsername
602 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
603
604
627- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
628 toGroup:(NSString * _Nonnull)aGroupId
629 content:(NSString * _Nullable)aContent
630 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
631
665- (void)ackConversationRead:(NSString * _Nonnull)conversationId
666 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
667
696- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
697 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
698
719- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(EMError * _Nullable))aCompletionBlock;
739- (void)sendMessage:(EMChatMessage *_Nonnull)aMessage
740 progress:(void (^_Nullable)(int progress))aProgressBlock
741 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
742
758- (void)resendMessage:(EMChatMessage *_Nonnull)aMessage
759 progress:(void (^_Nullable)(int progress))aProgressBlock
760 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
761
781- (void)downloadMessageThumbnail:(EMChatMessage *_Nonnull)aMessage
782 progress:(void (^_Nullable)(int progress))aProgressBlock
783 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
784
808- (void)downloadMessageAttachment:(EMChatMessage *_Nonnull)aMessage
809 progress:(void (^_Nullable)(int progress))aProgressBlock
810 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
811
829- (void)downloadAndParseCombineMessage:(EMChatMessage* _Nonnull)aMessage
830 completion:(void (^_Nullable)(NSArray<EMChatMessage *>*_Nullable messages, EMError *_Nullable error))aCompletionBlock;
831
858- (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
859 conversationType:(EMConversationType)aConversationType
860 startMessageId:(NSString *_Nullable)aStartMessageId
861 fetchDirection:(EMMessageFetchHistoryDirection)direction
862 pageSize:(int)aPageSize
863 error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
888- (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
889 conversationType:(EMConversationType)aConversationType
890 startMessageId:(NSString *_Nullable)aStartMessageId
891 pageSize:(int)aPageSize
892 error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
893
894
919- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
920 conversationType:(EMConversationType)aConversationType
921 startMessageId:(NSString *_Nullable)aStartMessageId
922 pageSize:(int)aPageSize
923 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
950- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
951 conversationType:(EMConversationType)aConversationType
952 startMessageId:(NSString *_Nullable)aStartMessageId
953 fetchDirection:(EMMessageFetchHistoryDirection)direction
954 pageSize:(int)aPageSize
955 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
956
957
958
959
988- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
989 groupId:(NSString *_Nonnull)aGroupId
990 startGroupAckId:(NSString *_Nonnull)aGroupAckId
991 pageSize:(int)aPageSize
992 completion:(void (^_Nullable)(EMCursorResult<EMGroupMessageAck *> *_Nullable aResult, EMError *_Nullable error, int totalCount))aCompletionBlock;
993
1017- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1018 tag:(NSString *_Nonnull)aTag
1019 reason:(NSString *_Nonnull)aReason
1020 completion:(void(^_Nullable)(EMError* _Nullable error))aCompletion;
1021
1038- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1039 completion:(void(^)(EMError*error))aCompletion;
1040
1041
1042
1059- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1076- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1077
1078
1094- (void)translateMessage:(EMChatMessage * _Nonnull)aMessage
1095 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1096 completion:(void (^_Nullable)(EMChatMessage * _Nullable message, EMError * _Nullable error))aCompletionBlock;
1097
1110- (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<EMTranslateLanguage*>* _Nullable languages,EMError* _Nullable error))aCompletionBlock;
1111
1148- (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1149 timestamp:(long long)aTimestamp
1150 count:(int)aCount
1151 fromUser:(NSString* _Nullable)aUsername
1152 searchDirection:(EMMessageSearchDirection)aDirection;
1153
1184- (void)loadMessagesWithType:(EMMessageBodyType)aType
1185 timestamp:(long long)aTimestamp
1186 count:(int)aCount
1187 fromUser:(NSString*)aUsername
1188 searchDirection:(EMMessageSearchDirection)aDirection
1189 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1190
1191
1222- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1223 timestamp:(long long)aTimestamp
1224 count:(int)aCount
1225 fromUser:(NSString* _Nullable)aUsername
1226 searchDirection:(EMMessageSearchDirection)aDirection
1227 completion:(void (^_Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1228
1265- (NSArray<EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1266 timestamp:(long long)aTimestamp
1267 count:(int)aCount
1268 fromUser:(NSString*)aSender
1269 searchDirection:(EMMessageSearchDirection)aDirection;
1270
1300- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1301 timestamp:(long long)aTimestamp
1302 count:(int)aCount
1303 fromUser:(NSString*)aSender
1304 searchDirection:(EMMessageSearchDirection)aDirection
1305 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1306
1338- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1339 timestamp:(long long)aTimestamp
1340 count:(int)aCount
1341 fromUser:(NSString*)aSender
1342 searchDirection:(EMMessageSearchDirection)aDirection
1343 scope:(EMMessageSearchScope)aScope
1344 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1345
1370- (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1371 timestamp:(long long)aTimestamp
1372 fromUser:(NSString*_Nullable )aSender
1373 searchDirection:(EMMessageSearchDirection)aDirection
1374 scope:(EMMessageSearchScope)aScope
1375 completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, EMError * _Nullable aError))aCompletionBlock;
1376
1377NS_ASSUME_NONNULL_BEGIN
1393- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1394
1410- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1411
1429- (void)getReactionList:(NSArray <NSString *>*)messageIds
1430 groupId:(nullable NSString *)groupId
1431 chatType:(EMChatType)chatType
1432 completion:(void (^)(NSDictionary <NSString *, NSArray<EMMessageReaction *> *> *, EMError * _Nullable))completion;
1433
1453- (void)getReactionDetail:(NSString *)messageId
1454 reaction:(NSString *)reaction
1455 cursor:(nullable NSString *)cursor
1456 pageSize:(uint64_t)pageSize
1457 completion:(void (^)(EMMessageReaction *, NSString * _Nullable cursor, EMError * _Nullable))completion;
1458
1489- (void)fetchMessagesFromServerBy:(NSString* )conversationId
1490 conversationType:(EMConversationType)type
1491 cursor:(NSString* _Nullable)cursor
1492 pageSize:(NSUInteger)pageSize
1493 option:(EMFetchServerMessagesOption* _Nullable)option
1494 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*>* _Nullable result, EMError* _Nullable aError))aCompletionBlock;
1495
1516- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1517
1539- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1540
1557- (void)getConversationsFromServerWithCursor:(NSString * _Nullable)cursor filter:(EMConversationFilter* _Nonnull)filter completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
1558
1581- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
1582
1596- (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1611- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1612
1626- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<EMChatMessage*>* _Nullable messages,EMError * _Nullable aError))aCompletionBlock;
1627
1640
1652- (void)getMessageCountWithCompletion:(void (^)(NSInteger count, EMError * _Nullable aError))completion;
1653
1667- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1668 withConversationId:(NSString * _Nonnull)aConversationId
1669 completion:(void (^ _Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1670
1671NS_ASSUME_NONNULL_END
1672
1673@end
Definition: EMChatMessage.h:114
Definition: EMConversationFilter.h:22
Definition: EMConversation.h:115
Definition: EMCursorResult.h:27
Definition: EMError.h:27
Definition: EMFetchServerMessagesOption.h:23
Definition: EMGroupMessageAck.h:21
Definition: EMMessageBody.h:46
Definition: EMMessageReaction.h:21
Definition: EMTranslateLanguage.h:20
Definition: EMChatManagerDelegate.h:31
Definition: IEMChatManager.h:65
NSArray< EMConversation * > *_Nullable getAllConversations()
EMError * markAllConversationsAsRead()
void cleanConversationsMemoryCache()