HyphenateSDK  3.6.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 
21 #import "EMDeviceConfig.h"
22 
30 typedef enum {
31  EMServerCheckAccountValidation = 0,
32  EMServerCheckGetDNSListFromServer,
33  EMServerCheckGetTokenFromServer,
34  EMServerCheckDoLogin,
35  EMServerCheckDoLogout,
36 } EMServerCheckType;
37 
41 @interface EMClient : NSObject
42 {
43  EMPushOptions *_pushOptions;
44 }
45 
53 @property (nonatomic, strong, readonly) NSString *version;
54 
62 @property (nonatomic, strong, readonly) NSString *currentUsername;
63 
71 @property (nonatomic, strong, readonly) EMOptions *options;
72 
80 @property (nonatomic, strong, readonly) EMPushOptions *pushOptions;
81 
89 @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager;
90 
98 @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager;
99 
107 @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager;
108 
116 @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager;
117 
127 @property (nonatomic, readonly) BOOL isAutoLogin;
128 
136 @property (nonatomic, readonly) BOOL isLoggedIn;
137 
145 @property (nonatomic, readonly) BOOL isConnected;
146 
154 + (instancetype)sharedClient;
155 
156 
157 #pragma mark - Delegate
158 
172 - (void)addDelegate:(id<EMClientDelegate>)aDelegate
173  delegateQueue:(dispatch_queue_t)aQueue;
174 
186 - (void)removeDelegate:(id)aDelegate;
187 
201 - (void)addMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate
202  delegateQueue:(dispatch_queue_t)aQueue;
203 
215 - (void)removeMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate;
216 
217 #pragma mark - Initialize SDK
218 
234 - (EMError *)initializeSDKWithOptions:(EMOptions *)aOptions;
235 
236 
237 #pragma mark - Change AppKey
238 
254 - (EMError *)changeAppkey:(NSString *)aAppkey;
255 
256 
257 #pragma mark - User Registeration
258 
280 - (EMError *)registerWithUsername:(NSString *)aUsername
281  password:(NSString *)aPassword;
282 
303 - (void)registerWithUsername:(NSString *)aUsername
304  password:(NSString *)aPassword
305  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
306 
307 
308 #pragma mark - Login
309 
326 - (void)fetchTokenWithUsername:(NSString *)aUsername
327  password:(NSString *)aPassword
328  completion:(void (^)(NSString *aToken, EMError *aError))aCompletionBlock;
329 
351 - (EMError *)loginWithUsername:(NSString *)aUsername
352  password:(NSString *)aPassword;
353 
370 - (void)loginWithUsername:(NSString *)aUsername
371  password:(NSString *)aPassword
372  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
373 
395 - (EMError *)loginWithUsername:(NSString *)aUsername
396  token:(NSString *)aToken;
397 
414 - (void)loginWithUsername:(NSString *)aUsername
415  token:(NSString *)aToken
416  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
417 
418 #pragma mark - Logout
419 
440 - (EMError *)logout:(BOOL)aIsUnbindDeviceToken;
441 
457 - (void)logout:(BOOL)aIsUnbindDeviceToken
458  completion:(void (^)(EMError *aError))aCompletionBlock;
459 
460 #pragma mark - APNs
461 
481 - (EMError *)bindDeviceToken:(NSData *)aDeviceToken;
482 
496 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
497  completion:(void (^)(EMError *aError))aCompletionBlock;
498 
518 - (EMError *)setApnsNickname:(NSString *)aNickname;
519 
534 - (void)updatePushNotifiationDisplayName:(NSString *)aDisplayName
535  completion:(void (^)(NSString *aDisplayName, EMError *aError))aCompletionBlock;
536 
556 - (EMPushOptions *)getPushOptionsFromServerWithError:(EMError **)pError;
557 
569 - (void)getPushNotificationOptionsFromServerWithCompletion:(void (^)(EMPushOptions *aOptions, EMError *aError))aCompletionBlock;
570 
587 
599 - (void)updatePushNotificationOptionsToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
600 
601 #pragma mark - Log
602 
619 
631 - (void)uploadDebugLogToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
632 
652 - (NSString *)getLogFilesPath:(EMError **)pError;
653 
665 - (void)getLogFilesPathWithCompletion:(void (^)(NSString *aPath, EMError *aError))aCompletionBlock;
666 
667 #pragma mark - Multi Devices
668 
692 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
693  password:(NSString *)aPassword
694  error:(EMError **)pError;
695 
713 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
714  password:(NSString *)aPassword
715  completion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock;
716 
742 - (EMError *)kickDevice:(EMDeviceConfig *)aDevice
743  username:(NSString *)aUsername
744  password:(NSString *)aPassword;
745 
765 - (void)kickDevice:(EMDeviceConfig *)aDevice
766  username:(NSString *)aUsername
767  password:(NSString *)aPassword
768  completion:(void (^)(EMError *aError))aCompletionBlock;
769 
791 - (EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
792  password:(NSString *)aPassword;
793 
809 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
810  password:(NSString *)aPassword
811  completion:(void (^)(EMError *aError))aCompletionBlock;
812 
813 #pragma mark - iOS
814 
833 
845 - (void)applicationDidEnterBackground:(id)aApplication;
846 
858 - (void)applicationWillEnterForeground:(id)aApplication;
859 
873 - (void)application:(id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
874 
875 #pragma mark - Service Check
876 
894 - (void)serviceCheckWithUsername:(NSString *)aUsername
895  password:(NSString *)aPassword
896  completion:(void (^)(EMServerCheckType aType, EMError *aError))aCompletionBlock;
897 
898 #pragma mark - EM_DEPRECATED_IOS 3.2.3
899 
911 - (void)addDelegate:(id<EMClientDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMCallManager addDelegate:delegateQueue:]");
912 
913 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
914 
937 - (void)asyncRegisterWithUsername:(NSString *)aUsername
938  password:(NSString *)aPassword
939  success:(void (^)())aSuccessBlock
940  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -registerWithUsername:password:completion:");
941 
960 - (void)asyncLoginWithUsername:(NSString *)aUsername
961  password:(NSString *)aPassword
962  success:(void (^)())aSuccessBlock
963  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -loginWithUsername:password:completion");
964 
981 - (void)asyncLogout:(BOOL)aIsUnbindDeviceToken
982  success:(void (^)())aSuccessBlock
983  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -logout:completion:");
984 
1000 - (void)asyncBindDeviceToken:(NSData *)aDeviceToken
1001  success:(void (^)())aSuccessBlock
1002  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -registerForRemoteNotificationsWithDeviceToken:completion:");
1003 
1020 - (void)asyncSetApnsNickname:(NSString *)aNickname
1021  success:(void (^)())aSuccessBlock
1022  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -updatePushNotifiationDisplayName:copletion");
1023 
1037 - (void)asyncGetPushOptionsFromServer:(void (^)(EMPushOptions *aOptions))aSuccessBlock
1038  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -getPushOptionsFromServerWithCompletion:");
1039 
1054 - (void)asyncUpdatePushOptionsToServer:(void (^)())aSuccessBlock
1055  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -updatePushNotificationOptionsToServerWithCompletion:");
1056 
1070 - (void)asyncUploadLogToServer:(void (^)())aSuccessBlock
1071  failure:(void (^)(EMError *aError))aFailureBlock __deprecated_msg("Use -uploadDebugLogToServerWithCompletion:");
1072 
1092 - (BOOL)dataMigrationTo3 __deprecated_msg("Use -migrateDatabaseToLatestSDK");
1093 
1094 @end
Definition: EMPushOptions.h:69
NSString * currentUsername
Definition: EMClient.h:62
Definition: IEMCallManager.h:32
NSString * version
Definition: EMClient.h:53
EMError * uploadLogToServer()
Definition: EMError.h:26
BOOL isConnected
Definition: EMClient.h:145
Definition: EMClientDelegate.h:38
id< IEMChatManager > chatManager
Definition: EMClient.h:89
EMOptions * options
Definition: EMClient.h:71
EMError * updatePushOptionsToServer()
instancetype sharedClient()
"Use -migrateDatabaseToLatestSDK" __deprecated_msg()
EMPushOptions * pushOptions
Definition: EMClient.h:80
id< IEMChatroomManager > roomManager
Definition: EMClient.h:116
BOOL isLoggedIn
Definition: EMClient.h:136
BOOL isAutoLogin
Definition: EMClient.h:127
Definition: EMMultiDevicesDelegate.h:56
Definition: EMDeviceConfig.h:17
Definition: EMOptions.h:39
id< IEMContactManager > contactManager
Definition: EMClient.h:98
id< IEMGroupManager > groupManager
Definition: EMClient.h:107
Definition: EMClient.h:41
BOOL migrateDatabaseToLatestSDK()