HyphenateChatSDK  3.8.3.1
EMClient.h
1 
8 #import <Foundation/Foundation.h>
9 
10 #import "EMClientDelegate.h"
11 #import "EMMultiDevicesDelegate.h"
12 #import "EMOptions.h"
13 #import "EMPushOptions.h"
14 #import "EMError.h"
15 
16 #import "IEMChatManager.h"
17 #import "IEMContactManager.h"
18 #import "IEMGroupManager.h"
19 #import "IEMChatroomManager.h"
20 #import "IEMPushManager.h"
21 #import "IEMUserInfoManager.h"
22 
23 #import "EMDeviceConfig.h"
24 
32 typedef enum {
33  EMServerCheckAccountValidation = 0,
34  EMServerCheckGetDNSListFromServer,
35  EMServerCheckGetTokenFromServer,
36  EMServerCheckDoLogin,
37  EMServerCheckDoLogout,
38 } EMServerCheckType;
39 
43 @interface EMClient : NSObject
44 {
45  EMPushOptions *_pushOptions;
46 }
47 
55 @property (nonatomic, strong, readonly) NSString *version;
56 
64 @property (nonatomic, strong, readonly) NSString *currentUsername;
65 
73 @property (nonatomic, strong, readonly) EMOptions *options;
74 
75 
83 @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager;
84 
92 @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager;
93 
101 @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager;
102 
110 @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager;
111 
112 
120 @property (nonatomic, strong, readonly) id<IEMPushManager> pushManager;
130 @property (nonatomic, readonly) BOOL isAutoLogin;
131 
139 @property (nonatomic, readonly) BOOL isLoggedIn;
140 
148 @property (nonatomic, readonly) BOOL isConnected;
149 
150 
158 @property (nonatomic, readonly) NSString *accessUserToken;
159 
160 @property (nonatomic, strong, readonly) id<IEMUserInfoManager> userInfoManager;
161 
169 + (instancetype)sharedClient;
170 
171 
172 #pragma mark - Delegate
173 
187 - (void)addDelegate:(id<EMClientDelegate>)aDelegate
188  delegateQueue:(dispatch_queue_t)aQueue;
189 
201 - (void)removeDelegate:(id)aDelegate;
202 
216 - (void)addMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate
217  delegateQueue:(dispatch_queue_t)aQueue;
218 
230 - (void)removeMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate;
231 
232 #pragma mark - Initialize SDK
233 
249 - (EMError *)initializeSDKWithOptions:(EMOptions *)aOptions;
250 
251 
252 #pragma mark - Change AppKey
253 
269 - (EMError *)changeAppkey:(NSString *)aAppkey;
270 
271 
272 #pragma mark - User Registeration
273 
295 - (EMError *)registerWithUsername:(NSString *)aUsername
296  password:(NSString *)aPassword;
297 
318 - (void)registerWithUsername:(NSString *)aUsername
319  password:(NSString *)aPassword
320  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
321 
322 
323 #pragma mark - Login
324 
341 - (void)fetchTokenWithUsername:(NSString *)aUsername
342  password:(NSString *)aPassword
343  completion:(void (^)(NSString *aToken, EMError *aError))aCompletionBlock;
344 
366 - (EMError *)loginWithUsername:(NSString *)aUsername
367  password:(NSString *)aPassword;
368 
385 - (void)loginWithUsername:(NSString *)aUsername
386  password:(NSString *)aPassword
387  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
388 
410 - (EMError *)loginWithUsername:(NSString *)aUsername
411  token:(NSString *)aToken;
412 
429 - (void)loginWithUsername:(NSString *)aUsername
430  token:(NSString *)aToken
431  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
432 
433 #pragma mark - Logout
434 
455 - (EMError *)logout:(BOOL)aIsUnbindDeviceToken;
456 
472 - (void)logout:(BOOL)aIsUnbindDeviceToken
473  completion:(void (^)(EMError *aError))aCompletionBlock;
474 
475 #pragma mark - PushKit
476 
496 - (EMError *)bindPushKitToken:(NSData *)aPushToken;
497 
511 - (void)registerPushKitToken:(NSData *)aPushToken
512  completion:(void (^)(EMError *aError))aCompletionBlock;
513 
529 - (EMError *)unBindPushKitToken;
530 
540 - (void)unRegisterPushKitTokenWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
541 
542 #pragma mark - APNs
543 
563 - (EMError *)bindDeviceToken:(NSData *)aDeviceToken;
564 
578 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
579  completion:(void (^)(EMError *aError))aCompletionBlock;
580 
581 
582 #pragma mark - Log
583 
599 - (EMError *)uploadLogToServer;
600 
612 - (void)uploadDebugLogToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
613 
633 - (NSString *)getLogFilesPath:(EMError **)pError;
634 
646 - (void)getLogFilesPathWithCompletion:(void (^)(NSString *aPath, EMError *aError))aCompletionBlock;
647 
659 - (void)log:(NSString*)aLog;
660 
661 #pragma mark - Multi Devices
662 
686 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
687  password:(NSString *)aPassword
688  error:(EMError **)pError;
689 
707 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
708  password:(NSString *)aPassword
709  completion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock;
710 
736 - (EMError *)kickDeviceWithUsername:(NSString *)aUsername
737  password:(NSString *)aPassword
738  resource:(NSString *)aResource;
739 
740 
741 
761 - (void)kickDeviceWithUsername:(NSString *)aUsername
762  password:(NSString *)aPassword
763  resource:(NSString *)aResource
764  completion:(void (^)(EMError *aError))aCompletionBlock;
765 
787 - (EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
788  password:(NSString *)aPassword;
789 
805 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
806  password:(NSString *)aPassword
807  completion:(void (^)(EMError *aError))aCompletionBlock;
808 
809 #pragma mark - iOS
810 
828 - (BOOL)migrateDatabaseToLatestSDK;
829 
841 - (void)applicationDidEnterBackground:(id)aApplication;
842 
854 - (void)applicationWillEnterForeground:(id)aApplication;
855 
869 - (void)application:(id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
870 
871 #pragma mark - Service Check
872 
890 - (void)serviceCheckWithUsername:(NSString *)aUsername
891  password:(NSString *)aPassword
892  completion:(void (^)(EMServerCheckType aType, EMError *aError))aCompletionBlock;
893 
894 #pragma mark - EM_DEPRECATED_IOS 3.7.2
902 @property (nonatomic, strong, readonly) EMPushOptions *pushOptions EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager.pushOptions]");
903 
904 
924 - (EMError *)setApnsNickname:(NSString *)aNickname EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:setApnsNickname:]");
925 
940 - (void)updatePushNotifiationDisplayName:(NSString *)aDisplayName
941  completion:(void (^)(NSString *aDisplayName, EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:updatePushNotifiationDisplayName:completion:]");
942 
962 - (EMPushOptions *)getPushOptionsFromServerWithError:(EMError **)pError EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:getPushOptionsFromServerWithError:]");
963 
975 - (void)getPushNotificationOptionsFromServerWithCompletion:(void (^)(EMPushOptions *aOptions, EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:getPushNotificationOptionsFromServerWithCompletion:]");
976 
992 - (EMError *)updatePushOptionsToServer EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
993 
1005 - (void)updatePushNotificationOptionsToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1006 
1007 #pragma mark - EM_DEPRECATED_IOS 3.2.3
1008 
1020 - (void)addDelegate:(id<EMClientDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMCallManager addDelegate:delegateQueue:]");
1021 
1022 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
1023 
1046 - (void)asyncRegisterWithUsername:(NSString *)aUsername
1047  password:(NSString *)aPassword
1048  success:(void (^)())aSuccessBlock
1049  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerWithUsername:password:completion:");
1050 
1051 
1070 - (void)asyncLoginWithUsername:(NSString *)aUsername
1071  password:(NSString *)aPassword
1072  success:(void (^)())aSuccessBlock
1073  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -loginWithUsername:password:completion");
1074 
1091 - (void)asyncLogout:(BOOL)aIsUnbindDeviceToken
1092  success:(void (^)())aSuccessBlock
1093  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -logout:completion:");
1094 
1095 
1111 - (void)asyncBindDeviceToken:(NSData *)aDeviceToken
1112  success:(void (^)())aSuccessBlock
1113  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerForRemoteNotificationsWithDeviceToken:completion:");
1114 
1131 - (void)asyncSetApnsNickname:(NSString *)aNickname
1132  success:(void (^)())aSuccessBlock
1133  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotifiationDisplayName:copletion");
1134 
1148 - (void)asyncGetPushOptionsFromServer:(void (^)(EMPushOptions *aOptions))aSuccessBlock
1149  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -getPushOptionsFromServerWithCompletion:");
1150 
1165 - (void)asyncUpdatePushOptionsToServer:(void (^)())aSuccessBlock
1166  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotificationOptionsToServerWithCompletion:");
1167 
1181 - (void)asyncUploadLogToServer:(void (^)())aSuccessBlock
1182  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -uploadDebugLogToServerWithCompletion:");
1183 
1203 - (BOOL)dataMigrationTo3 EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -migrateDatabaseToLatestSDK");
1204 
1205 
1231 - (EMError *)kickDevice:(EMDeviceConfig *)aDevice
1232  username:(NSString *)aUsername
1233  password:(NSString *)aPassword EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource:");
1234 
1235 
1255 - (void)kickDevice:(EMDeviceConfig *)aDevice
1256  username:(NSString *)aUsername
1257  password:(NSString *)aPassword
1258  completion:(void (^)(EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource:completion:");
1259 @end
Definition: EMClient.h:44
Definition: EMDeviceConfig.h:18
Definition: EMError.h:27
Definition: EMOptions.h:40
Definition: EMPushOptions.h:59
Definition: EMClientDelegate.h:38
Definition: EMMultiDevicesDelegate.h:56
Definition: IEMPushManager.h:16