HyphenateChatSDK 4.25.0
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#import "EMPageResult.h"
33
34#import "EMGroupMessageAck.h"
35#import "EMTranslateLanguage.h"
36#import "EMVoiceParam.h"
37#import "EMFetchServerMessagesOption.h"
38#import "EMMessageSearchOption.h"
39#import "EMSearchServerMessageResult.h"
40#import "EMConversationFilter.h"
41
49typedef NS_ENUM(NSUInteger, EMMessageFetchHistoryDirection) {
50 EMMessageFetchHistoryDirectionUp = 0,
51 EMMessageFetchHistoryDirectionDown
53};
54
55
56@class EMError;
57
69@protocol IEMChatManager <NSObject>
70
71@required
72
73#pragma mark - Delegate
74
88- (void)addDelegate:(id<EMChatManagerDelegate> _Nullable)aDelegate
89 delegateQueue:(dispatch_queue_t _Nullable)aQueue;
90
102- (void)removeDelegate:(id<EMChatManagerDelegate> _Nonnull)aDelegate;
103
104#pragma mark - Conversation
105
121- (NSArray<EMConversation *> * _Nullable)getAllConversations;
122
148- (NSArray<EMConversation *> * _Nullable)filterConversationsFromDB:(BOOL)cleanMemoryCache filter:(BOOL(^_Nullable)(EMConversation * _Nonnull conversation))filter NS_SWIFT_NAME(filterConversationsFromDB(cleanMemoryCache:filter:));
149
150
159
181- (NSArray<EMConversation *> * _Nullable)getAllConversations:(BOOL)isSort;
182
194- (void)getConversationsFromServer:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
195
211- (void)getConversationsFromServerByPage:(NSUInteger)pageNumber
212 pageSize:(NSUInteger)pageSize
213 completion:(void (^_Nullable)(NSArray<EMConversation *> * _Nullable aConversations, EMError * _Nullable aError))aCompletionBlock EM_DEPRECATED_IOS(4_0_0, "Use -IEMChatManager getConversationsFromServerWithCursor:pageSize:completion");
237- (void)getConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)pageSize completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
238
258- (void)getPinnedConversationsFromServerWithCursor:(nullable NSString *)cursor pageSize:(UInt8)limit completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
259
283- (void)getConversationsFromDBWithCursor:(nullable NSString *)cursor pageSize:(NSInteger)pageSize completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
284
304- (void)pinConversation:(nonnull NSString *)conversationId isPinned:(BOOL)isPinned completionBlock:(nullable void(^)(EMError * _Nullable error))completionBlock;
305
321- (EMConversation *_Nullable)getConversationWithConvId:(NSString * _Nullable)aConversationId;
322
346- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
347 type:(EMConversationType)aType
348 createIfNotExist:(BOOL)aIfCreate;
349
377- (EMConversation *_Nullable)getConversation:(NSString *_Nonnull)aConversationId
378 type:(EMConversationType)aType
379 createIfNotExist:(BOOL)aIfCreate isThread:(BOOL)isThread;
380
401- (void)deleteConversation:(NSString * _Nonnull)aConversationId
402 isDeleteMessages:(BOOL)aIsDeleteMessages
403 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError *_Nullable aError))aCompletionBlock;
404
427 - (void)deleteServerConversation:(NSString * _Nonnull)aConversationId
428 conversationType:(EMConversationType)aConversationType
429 isDeleteServerMessages:(BOOL)aIsDeleteServerMessages
430 completion:(void (^_Nullable)(NSString * _Nullable aConversationId, EMError * _Nullable aError))aCompletionBlock;
431
452- (void)deleteConversations:(NSArray<EMConversation *> * _Nullable)aConversations
453 isDeleteMessages:(BOOL)aIsDeleteMessages
454 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
455
471- (void)importConversations:(NSArray<EMConversation *> * _Nullable)aConversations
472 completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
473
474#pragma mark - Message
475
490- (EMChatMessage * _Nullable)getMessageWithMessageId:(NSString * _Nonnull)aMessageId;
491
511- (NSString * _Nullable)getMessageAttachmentPath:(NSString * _Nonnull)aConversationId;
512
527- (void)importMessages:(NSArray<EMChatMessage *> * _Nonnull)aMessages
528 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
529
550- (void)updateMessage:(EMChatMessage *_Nonnull)aMessage
551 completion:(void (^_Nullable)(EMChatMessage * _Nullable aMessage, EMError * _Nullable aError))aCompletionBlock;
571- (void)modifyMessage:(NSString *_Nonnull)messageId body:(EMMessageBody *_Nonnull)body completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
572
604- (void)modifyMessage:(NSString *_Nonnull)messageId
605 body:(EMMessageBody *_Nullable)body
606 ext:(NSDictionary* _Nullable)ext
607 completion:(void (^_Nonnull)(EMError * _Nullable error,EMChatMessage *_Nullable message))completionBlock;
608
629- (void)sendMessageReadAck:(NSString * _Nonnull)aMessageId
630 toUser:(NSString * _Nonnull)aUsername
631 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
632
633
656- (void)sendGroupMessageReadAck:(NSString * _Nonnull)aMessageId
657 toGroup:(NSString * _Nonnull)aGroupId
658 content:(NSString * _Nullable)aContent
659 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
660
694- (void)ackConversationRead:(NSString * _Nonnull)conversationId
695 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
696
725- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId
726 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
727
748- (void)recallMessageWithMessageId:(NSString *_Nonnull)aMessageId ext:(NSString * _Nullable)ext completion:(void (^_Nonnull)(EMError * _Nullable))aCompletionBlock;
768- (void)sendMessage:(EMChatMessage *_Nonnull)aMessage
769 progress:(void (^_Nullable)(int progress))aProgressBlock
770 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
771
787- (void)resendMessage:(EMChatMessage *_Nonnull)aMessage
788 progress:(void (^_Nullable)(int progress))aProgressBlock
789 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
790
810- (void)downloadMessageThumbnail:(EMChatMessage *_Nonnull)aMessage
811 progress:(void (^_Nullable)(int progress))aProgressBlock
812 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
813
837- (void)downloadMessageAttachment:(EMChatMessage *_Nonnull)aMessage
838 progress:(void (^_Nullable)(int progress))aProgressBlock
839 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
867- (void)downloadBigImageAttachment:(EMChatMessage *_Nonnull)aMessage
868 progress:(void (^_Nullable)(int progress))aProgressBlock
869 completion:(void (^_Nullable)(EMChatMessage *_Nullable message, EMError *_Nullable error))aCompletionBlock;
870
888- (void)downloadAndParseCombineMessage:(EMChatMessage* _Nonnull)aMessage
889 completion:(void (^_Nullable)(NSArray<EMChatMessage *>*_Nullable messages, EMError *_Nullable error))aCompletionBlock;
890
917- (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
918 conversationType:(EMConversationType)aConversationType
919 startMessageId:(NSString *_Nullable)aStartMessageId
920 fetchDirection:(EMMessageFetchHistoryDirection)direction
921 pageSize:(int)aPageSize
922 error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
947- (EMCursorResult<EMChatMessage*> *_Nullable)fetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
948 conversationType:(EMConversationType)aConversationType
949 startMessageId:(NSString *_Nullable)aStartMessageId
950 pageSize:(int)aPageSize
951 error:(EMError **_Nullable)pError __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
952
953
978- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
979 conversationType:(EMConversationType)aConversationType
980 startMessageId:(NSString *_Nullable)aStartMessageId
981 pageSize:(int)aPageSize
982 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
1009- (void)asyncFetchHistoryMessagesFromServer:(NSString *_Nonnull)aConversationId
1010 conversationType:(EMConversationType)aConversationType
1011 startMessageId:(NSString *_Nullable)aStartMessageId
1012 fetchDirection:(EMMessageFetchHistoryDirection)direction
1013 pageSize:(int)aPageSize
1014 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*> *_Nullable aResult, EMError *_Nullable aError))aCompletionBlock __deprecated_msg("Use -fetchMessagesFromServerBy:conversationType:cursor:pageSize:option:completion: instead");
1015
1016
1017
1018
1047- (void)asyncFetchGroupMessageAcksFromServer:(NSString *_Nonnull)aMessageId
1048 groupId:(NSString *_Nonnull)aGroupId
1049 startGroupAckId:(NSString *_Nonnull)aGroupAckId
1050 pageSize:(int)aPageSize
1051 completion:(void (^_Nullable)(EMCursorResult<EMGroupMessageAck *> *_Nullable aResult, EMError *_Nullable error, int totalCount))aCompletionBlock;
1052
1076- (void)reportMessageWithId:(NSString *_Nonnull )aMessageId
1077 tag:(NSString *_Nonnull)aTag
1078 reason:(NSString *_Nonnull)aReason
1079 completion:(void(^_Nullable)(EMError* _Nullable error))aCompletion;
1080
1097- (void)deleteMessagesBefore:(NSUInteger)aTimestamp
1098 completion:(void(^)(EMError*error))aCompletion;
1099
1100
1101
1118- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation messageIds:(NSArray <__kindof NSString*>*_Nonnull)messageIds completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1135- (void)removeMessagesFromServerWithConversation:(EMConversation *_Nonnull)conversation timeStamp:(NSTimeInterval)beforeTimeStamp completion:(void (^ _Nullable)(EMError * _Nullable aError))aCompletionBlock;
1136
1137
1153- (void)translateMessage:(EMChatMessage * _Nonnull)aMessage
1154 targetLanguages:(NSArray<NSString*>* _Nonnull)aLanguages
1155 completion:(void (^_Nullable)(EMChatMessage * _Nullable message, EMError * _Nullable error))aCompletionBlock;
1156
1182- (void)voiceMessageToText:(EMChatMessage * _Nonnull)aMessage
1183 completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
1184
1208- (void)voiceFileToText:(NSString * _Nonnull)aFilePath
1209 voiceParam:(EMVoiceParam * _Nullable)aVoiceParam
1210 completion:(void (^_Nullable)(NSString * _Nullable text, EMError * _Nullable error))aCompletionBlock;
1211
1224- (void)fetchSupportedLanguages:(void(^_Nullable)(NSArray<EMTranslateLanguage*>* _Nullable languages,EMError* _Nullable error))aCompletionBlock;
1225
1262- (NSArray<EMChatMessage *> * _Nullable)loadMessagesWithType:(EMMessageBodyType)aType
1263 timestamp:(long long)aTimestamp
1264 count:(int)aCount
1265 fromUser:(NSString* _Nullable)aUsername
1266 searchDirection:(EMMessageSearchDirection)aDirection;
1267
1298- (void)loadMessagesWithType:(EMMessageBodyType)aType
1299 timestamp:(long long)aTimestamp
1300 count:(int)aCount
1301 fromUser:(NSString*)aUsername
1302 searchDirection:(EMMessageSearchDirection)aDirection
1303 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1304
1305
1336- (void)searchMessagesWithTypes:(NSArray <NSNumber*>* _Nonnull)aTypes
1337 timestamp:(long long)aTimestamp
1338 count:(int)aCount
1339 fromUser:(NSString* _Nullable)aUsername
1340 searchDirection:(EMMessageSearchDirection)aDirection
1341 completion:(void (^_Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1342
1379- (NSArray<EMChatMessage *> *)loadMessagesWithKeyword:(NSString*)aKeywords
1380 timestamp:(long long)aTimestamp
1381 count:(int)aCount
1382 fromUser:(NSString*)aSender
1383 searchDirection:(EMMessageSearchDirection)aDirection;
1384
1414- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1415 timestamp:(long long)aTimestamp
1416 count:(int)aCount
1417 fromUser:(NSString*)aSender
1418 searchDirection:(EMMessageSearchDirection)aDirection
1419 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1420
1452- (void)loadMessagesWithKeyword:(NSString*)aKeywords
1453 timestamp:(long long)aTimestamp
1454 count:(int)aCount
1455 fromUser:(NSString*)aSender
1456 searchDirection:(EMMessageSearchDirection)aDirection
1457 scope:(EMMessageSearchScope)aScope
1458 completion:(void (^)(NSArray<EMChatMessage *> *aMessages, EMError *aError))aCompletionBlock;
1459
1484- (void)loadConversationMessagesWithKeyword:(NSString*_Nullable )aKeywords
1485 timestamp:(long long)aTimestamp
1486 fromUser:(NSString*_Nullable )aSender
1487 searchDirection:(EMMessageSearchDirection)aDirection
1488 scope:(EMMessageSearchScope)aScope
1489 completion:(void (^ _Nonnull)(NSDictionary<NSString*,NSArray<NSString*> *> * _Nullable aConversationMessages, EMError * _Nullable aError))aCompletionBlock;
1490
1491NS_ASSUME_NONNULL_BEGIN
1507- (void)addReaction:(NSString *)reaction toMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1508
1524- (void)removeReaction:(NSString *)reaction fromMessage:(NSString *)messageId completion:(nullable void(^)(EMError * _Nullable))completion;
1525
1543- (void)getReactionList:(NSArray <NSString *>*)messageIds
1544 groupId:(nullable NSString *)groupId
1545 chatType:(EMChatType)chatType
1546 completion:(void (^)(NSDictionary <NSString *, NSArray<EMMessageReaction *> *> *, EMError * _Nullable))completion;
1547
1567- (void)getReactionDetail:(NSString *)messageId
1568 reaction:(NSString *)reaction
1569 cursor:(nullable NSString *)cursor
1570 pageSize:(uint64_t)pageSize
1571 completion:(void (^)(EMMessageReaction *, NSString * _Nullable cursor, EMError * _Nullable))completion;
1572
1603- (void)fetchMessagesFromServerBy:(NSString* )conversationId
1604 conversationType:(EMConversationType)type
1605 cursor:(NSString* _Nullable)cursor
1606 pageSize:(NSUInteger)pageSize
1607 option:(EMFetchServerMessagesOption* _Nullable)option
1608 completion:(void (^_Nullable)(EMCursorResult<EMChatMessage*>* _Nullable result, EMError* _Nullable aError))aCompletionBlock;
1609
1630- (void)searchMessagesFromServerWithOption:(EMMessageSearchOption *)option
1631 pageSize:(NSInteger)pageSize
1632 pageNum:(NSInteger)pageNum
1633 completion:(void (^_Nullable)(EMPageResult<EMSearchServerMessageResult*>* _Nullable result, EMError* _Nullable aError))completion;
1634
1655- (void)addConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1656
1678- (void)removeConversationMark:(NSArray<NSString*>* _Nonnull)conversationIds mark:(EMMarkType)mark completion:(void (^_Nullable)(EMError* _Nullable aError))completion;
1679
1696- (void)getConversationsFromServerWithCursor:(NSString * _Nullable)cursor filter:(EMConversationFilter* _Nonnull)filter completion:(nonnull void (^)(EMCursorResult<EMConversation *> * _Nullable result, EMError * _Nullable error))completionBlock;
1697
1720- (void)deleteAllMessagesAndConversations:(BOOL)clearServerData completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
1721
1735- (void)pinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1750- (void)unpinMessage:(NSString* _Nonnull)messageId completion:(void (^_Nullable)(EMChatMessage* _Nullable message,EMError * _Nullable aError))aCompletionBlock;
1751
1765- (void)getPinnedMessagesFromServer:(NSString* _Nonnull)conversationId completion:(void (^_Nullable)(NSArray<EMChatMessage*>* _Nullable messages,EMError * _Nullable aError))aCompletionBlock;
1766
1779
1791- (void)getMessageCountWithCompletion:(void (^)(NSInteger count, EMError * _Nullable aError))completion;
1792
1806- (void)getMessages:(NSArray<NSString *> * _Nonnull)aMessageIds
1807 withConversationId:(NSString * _Nonnull)aConversationId
1808 completion:(void (^ _Nonnull)(NSArray<EMChatMessage *> * _Nullable aMessages, EMError * _Nullable aError))aCompletionBlock;
1809
1810NS_ASSUME_NONNULL_END
1811
1812@end
Definition: EMChatMessage.h:155
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:55
Definition: EMMessageReaction.h:21
Definition: EMMessageSearchOption.h:31
Definition: EMPageResult.h:24
Definition: EMSearchServerMessageResult.h:27
Definition: EMTranslateLanguage.h:20
Definition: EMVoiceParam.h:39
Definition: EMChatManagerDelegate.h:31
Definition: IEMChatManager.h:69
NSArray< EMConversation * > *_Nullable getAllConversations()
EMError * markAllConversationsAsRead()
void cleanConversationsMemoryCache()