HyphenateChatSDK 4.0.0
EMClient.h
1
8#import <Foundation/Foundation.h>
9
10#import "EMClientDelegate.h"
11#import "EMError.h"
12#import "EMMultiDevicesDelegate.h"
13#import "EMOptions.h"
14#import "EMPushOptions.h"
15
16#import "IEMChatManager.h"
17#import "IEMChatroomManager.h"
18#import "IEMContactManager.h"
19#import "IEMGroupManager.h"
20#import "IEMThreadManager.h"
21#import "IEMPushManager.h"
22#import "IEMUserInfoManager.h"
23#import "IEMTranslateManager.h"
24#import "IEMPresenceManager.h"
25#import "IEMStatisticsManager.h"
26
27#import "EMDeviceConfig.h"
28#import "EMLocalNotificationManager.h"
29#import "EMTranslationResult.h"
30#import "EMLogDelegate.h"
31
40typedef NS_ENUM(NSInteger, EMServerCheckType) {
41 EMServerCheckAccountValidation = 0,
42 EMServerCheckGetDNSListFromServer,
43 EMServerCheckGetTokenFromServer,
44 EMServerCheckDoLogin,
45 EMServerCheckDoLogout,
46};
47
57@interface EMClient : NSObject
58{
59 EMPushOptions *_pushOptions;
60}
61
69@property(nonatomic, strong, readonly) NSString * _Nonnull version;
70
78@property(nonatomic, strong, readonly) NSString * _Nullable currentUsername;
79
87@property(nonatomic, strong, readonly) EMOptions * _Nonnull options;
88
96@property(nonatomic, strong, readonly) id<IEMChatManager> _Nullable chatManager;
97
105@property(nonatomic, strong, readonly) id<IEMContactManager> _Nullable contactManager;
106
114@property(nonatomic, strong, readonly) id<IEMGroupManager> _Nullable groupManager;
115
124@property (nonatomic, strong, readonly) id<IEMThreadManager> _Nullable threadManager;
125
133@property(nonatomic, strong, readonly) id<IEMChatroomManager> _Nullable roomManager;
134
142@property (nonatomic, strong, readonly) id<IEMPushManager> _Nullable pushManager;
143
152@property(nonatomic, readonly) BOOL isAutoLogin;
153
161@property(nonatomic, readonly) BOOL isLoggedIn;
162
170@property(nonatomic, readonly) BOOL isConnected;
171
179@property(nonatomic, readonly) NSString * _Nullable accessUserToken;
180
188@property(nonatomic, strong, readonly) id<IEMUserInfoManager> _Nullable userInfoManager;
189
197@property (nonatomic, strong, readonly) id<IEMPresenceManager> _Nullable presenceManager;
198
206@property (nonatomic, strong, readonly) id<IEMStatisticsManager> _Nullable statisticsManager;
207
215+ (instancetype _Nonnull )sharedClient;
216
217
225- (NSString *)version;
226
227#pragma mark - Delegate
228
241- (void)addDelegate:(id<EMClientDelegate>_Nonnull)aDelegate
242 delegateQueue:(dispatch_queue_t _Nullable )aQueue;
243
255- (void)removeDelegate:(id _Nonnull )aDelegate;
256
270- (void)addMultiDevicesDelegate:(id<EMMultiDevicesDelegate>_Nonnull)aDelegate
271 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addMultiDevices(delegate:queue:));
272
284- (void)removeMultiDevicesDelegate:(id<EMMultiDevicesDelegate>_Nonnull)aDelegate;
285
286#pragma mark - Initialize SDK
287
303- (EMError *_Nullable)initializeSDKWithOptions:(EMOptions * _Nonnull )aOptions;
304
305#pragma mark - Change AppKey
306
324- (EMError *_Nullable)changeAppkey:(NSString * _Nonnull)aAppkey;
325
326#pragma mark - User Registeration
327
353- (EMError *_Nullable)registerWithUsername:(NSString * _Nonnull)aUsername
354 password:(NSString * _Nonnull)aPassword;
355
384- (void)registerWithUsername:(NSString *_Nonnull)aUsername
385 password:(NSString *_Nonnull)aPassword
386 completion:(void (^_Nullable)(NSString * _Nonnull aUsername, EMError * _Nullable aError))aCompletionBlock;
387
388#pragma mark - Login
389
410- (void)fetchTokenWithUsername:(NSString *_Nonnull)aUsername
411 password:(NSString *_Nonnull)aPassword
412 completion:(void (^_Nullable)(NSString * _Nullable aToken, EMError * _Nullable aError))aCompletionBlock;
413
439- (EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
440 password:(NSString *_Nonnull)aPassword;
441
466- (void)loginWithUsername:(NSString *_Nonnull)aUsername
467 password:(NSString *_Nonnull)aPassword
468 completion:(void (^_Nullable)(NSString * _Nonnull aUsername, EMError *_Nullable aError))aCompletionBlock;
469
491- (EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
492 token:(NSString *_Nonnull)aToken;
493
514- (void)loginWithUsername:(NSString *_Nonnull)aUsername
515 token:(NSString *_Nonnull)aToken
516 completion:(void (^_Nullable)(NSString * _Nonnull aUsername, EMError *_Nullable aError))aCompletionBlock;
517
539- (EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
540 agoraToken:(NSString *_Nonnull)aAgoraToken;
541
559- (void)loginWithUsername:(NSString *_Nonnull)aUsername
560 agoraToken:(NSString *_Nonnull)aAgoraToken
561 completion:(void (^_Nullable)(NSString * _Nonnull aUsername, EMError *_Nullable aError))aCompletionBlock;
562
588- (EMError *_Nullable)renewToken:(NSString *_Nonnull)newAgoraToken;
589
590#pragma mark - Logout
591
611- (EMError *_Nullable)logout:(BOOL)aIsUnbindDeviceToken;
612
631- (void)logout:(BOOL)aIsUnbindDeviceToken
632 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
633
634#pragma mark - PushKit
635
657- (EMError *_Nullable)bindPushKitToken:(NSData *_Nullable)aPushToken;
658
678- (void)registerPushKitToken:(NSData *_Nullable)aPushToken
679 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
680
698- (EMError *_Nullable)unBindPushKitToken;
699
713- (void)unRegisterPushKitTokenWithCompletion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
714
715#pragma mark - APNs
716
738- (EMError *_Nullable)bindDeviceToken:(NSData *_Nonnull)aDeviceToken;
739
757- (void)registerForRemoteNotificationsWithDeviceToken:(NSData *_Nonnull)aDeviceToken
758 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
759
760#pragma mark - Log
761
779- (EMError *_Nullable)uploadLogToServer;
780
792- (void)uploadDebugLogToServerWithCompletion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
793
814- (NSString *_Nullable)getLogFilesPath:(EMError **_Nullable)pError;
815
831- (void)getLogFilesPathWithCompletion:(void (^_Nullable)(NSString *_Nullable aPath, EMError * _Nullable aError))aCompletionBlock;
832
848- (void)log:(NSString *_Nonnull)aLog;
849
863- (void)addLogDelegate:(id<EMLogDelegate>_Nonnull)aDelegate
864 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addLog(delegate:queue:));
865
877- (void)removeLogDelegate:(id<EMLogDelegate>_Nonnull)aDelegate NS_SWIFT_NAME(removeLog(delegate:));
878
879#pragma mark - Multi Devices
880
904- (NSArray<EMDeviceConfig*> *_Nullable)getLoggedInDevicesFromServerWithUsername:(NSString * _Nonnull)aUsername
905 password:(NSString * _Nonnull)aPassword
906 error:(EMError ** _Nullable)pError;
907
928- (void)getLoggedInDevicesFromServerWithUsername:(NSString *_Nonnull)aUsername
929 password:(NSString *_Nonnull)aPassword
930 completion:(void (^_Nullable)(NSArray<EMDeviceConfig*> * _Nullable aList, EMError *_Nullable aError))aCompletionBlock;
931
955- (EMError *_Nullable)kickDeviceWithUsername:(NSString *_Nonnull)aUsername
956 password:(NSString *_Nonnull)aPassword
957 resource:(NSString *_Nonnull)aResource;
958
982- (void)kickDeviceWithUsername:(NSString *_Nonnull)aUsername
983 password:(NSString *_Nonnull)aPassword
984 resource:(NSString *_Nonnull)aResource
985 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
986
1008- (EMError *_Nullable)kickAllDevicesWithUsername:(NSString *_Nonnull)aUsername
1009 password:(NSString *_Nonnull)aPassword;
1010
1030- (void)kickAllDevicesWithUsername:(NSString *_Nonnull)aUsername
1031 password:(NSString *_Nonnull)aPassword
1032 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
1033
1045- (EMDeviceConfig *)getDeviceConfig:(EMError **)pError;
1046
1047#pragma mark - iOS
1048
1066- (BOOL)migrateDatabaseToLatestSDK;
1067
1079- (void)applicationDidEnterBackground:(id _Nonnull )aApplication;
1080
1092- (void)applicationWillEnterForeground:(id _Nonnull )aApplication;
1093
1107- (void)application:(id _Nonnull)application didReceiveRemoteNotification:(NSDictionary * _Nullable)userInfo;
1108
1109#pragma mark - Service Check
1110
1133- (void)serviceCheckWithUsername:(NSString *_Nonnull)aUsername
1134 password:(NSString *_Nonnull)aPassword
1135 completion:(void (^_Nullable)(EMServerCheckType aType, EMError *_Nullable aError))aCompletionBlock;
1136
1137@property (nonatomic, strong, readonly) id<IEMTranslateManager> _Nonnull translateManager EM_DEPRECATED_IOS(3_8_9, 3_9_5,"Use -IEMChatManager translateMessage: instead");
1138@end
Definition: EMClient.h:58
Definition: EMDeviceConfig.h:25
Definition: EMError.h:27
Definition: EMOptions.h:52
Definition: EMPushOptions.h:58
Definition: EMClientDelegate.h:45
Definition: EMLogDelegate.h:18
Definition: EMMultiDevicesDelegate.h:73