HyphenateChatSDK  3.8.7
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 #import "EMLocalNotificationManager.h"
25 
33 typedef NS_ENUM(NSInteger, EMServerCheckType) {
34  EMServerCheckAccountValidation = 0,
35  EMServerCheckGetDNSListFromServer,
36  EMServerCheckGetTokenFromServer,
37  EMServerCheckDoLogin,
38  EMServerCheckDoLogout,
39 };
40 
50 @interface EMClient : NSObject
51 {
52  EMPushOptions *_pushOptions;
53 }
54 
62 @property (nonatomic, strong, readonly) NSString *version;
63 
71 @property (nonatomic, strong, readonly) NSString *currentUsername;
72 
80 @property (nonatomic, strong, readonly) EMOptions *options;
81 
82 
90 @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager;
91 
99 @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager;
100 
108 @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager;
109 
117 @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager;
118 
119 
127 @property (nonatomic, strong, readonly) id<IEMPushManager> pushManager;
137 @property (nonatomic, readonly) BOOL isAutoLogin;
138 
146 @property (nonatomic, readonly) BOOL isLoggedIn;
147 
155 @property (nonatomic, readonly) BOOL isConnected;
156 
164 @property (nonatomic, readonly) NSString *accessUserToken;
165 
173 @property (nonatomic, strong, readonly) id<IEMUserInfoManager> userInfoManager;
174 
182 + (instancetype)sharedClient;
183 
184 
185 #pragma mark - Delegate
186 
200 - (void)addDelegate:(id<EMClientDelegate>)aDelegate
201  delegateQueue:(dispatch_queue_t)aQueue;
202 
214 - (void)removeDelegate:(id)aDelegate;
215 
229 - (void)addMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate
230  delegateQueue:(dispatch_queue_t)aQueue;
231 
243 - (void)removeMultiDevicesDelegate:(id<EMMultiDevicesDelegate>)aDelegate;
244 
245 #pragma mark - Initialize SDK
246 
262 - (EMError *)initializeSDKWithOptions:(EMOptions *)aOptions;
263 
264 
265 #pragma mark - Change AppKey
266 
282 - (EMError *)changeAppkey:(NSString *)aAppkey;
283 
284 
285 #pragma mark - User Registeration
286 
308 - (EMError *)registerWithUsername:(NSString *)aUsername
309  password:(NSString *)aPassword;
310 
331 - (void)registerWithUsername:(NSString *)aUsername
332  password:(NSString *)aPassword
333  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
334 
335 
336 #pragma mark - Login
337 
354 - (void)fetchTokenWithUsername:(NSString *)aUsername
355  password:(NSString *)aPassword
356  completion:(void (^)(NSString *aToken, EMError *aError))aCompletionBlock;
357 
382 - (EMError *)loginWithUsername:(NSString *)aUsername
383  password:(NSString *)aPassword;
384 
401 - (void)loginWithUsername:(NSString *)aUsername
402  password:(NSString *)aPassword
403  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
404 
426 - (EMError *)loginWithUsername:(NSString *)aUsername
427  token:(NSString *)aToken;
428 
445 - (void)loginWithUsername:(NSString *)aUsername
446  token:(NSString *)aToken
447  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
448 
470 - (EMError *)loginWithUsername:(NSString *)aUsername
471  agoraToken:(NSString *)aAgoraToken;
472 
489 - (void)loginWithUsername:(NSString *)aUsername
490  agoraToken:(NSString *)aAgoraToken
491  completion:(void (^)(NSString *aUsername, EMError *aError))aCompletionBlock;
492 
512 - (EMError *)renewToken:(NSString *)newAgoraToken;
513 
514 #pragma mark - Logout
515 
536 - (EMError *)logout:(BOOL)aIsUnbindDeviceToken;
537 
553 - (void)logout:(BOOL)aIsUnbindDeviceToken
554  completion:(void (^)(EMError *aError))aCompletionBlock;
555 
556 #pragma mark - PushKit
557 
577 - (EMError *)bindPushKitToken:(NSData *)aPushToken;
578 
592 - (void)registerPushKitToken:(NSData *)aPushToken
593  completion:(void (^)(EMError *aError))aCompletionBlock;
594 
610 - (EMError *)unBindPushKitToken;
611 
621 - (void)unRegisterPushKitTokenWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
622 
623 #pragma mark - APNs
624 
644 - (EMError *)bindDeviceToken:(NSData *)aDeviceToken;
645 
659 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
660  completion:(void (^)(EMError *aError))aCompletionBlock;
661 
662 
663 #pragma mark - Log
664 
680 - (EMError *)uploadLogToServer;
681 
693 - (void)uploadDebugLogToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock;
694 
714 - (NSString *)getLogFilesPath:(EMError **)pError;
715 
727 - (void)getLogFilesPathWithCompletion:(void (^)(NSString *aPath, EMError *aError))aCompletionBlock;
728 
740 - (void)log:(NSString*)aLog;
741 
742 #pragma mark - Multi Devices
743 
767 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
768  password:(NSString *)aPassword
769  error:(EMError **)pError;
770 
787 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
788  password:(NSString *)aPassword
789  completion:(void (^)(NSArray *aList, EMError *aError))aCompletionBlock;
790 
816 - (EMError *)kickDeviceWithUsername:(NSString *)aUsername
817  password:(NSString *)aPassword
818  resource:(NSString *)aResource;
819 
820 
821 
841 - (void)kickDeviceWithUsername:(NSString *)aUsername
842  password:(NSString *)aPassword
843  resource:(NSString *)aResource
844  completion:(void (^)(EMError *aError))aCompletionBlock;
845 
867 - (EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
868  password:(NSString *)aPassword;
869 
885 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
886  password:(NSString *)aPassword
887  completion:(void (^)(EMError *aError))aCompletionBlock;
888 
889 #pragma mark - iOS
890 
908 - (BOOL)migrateDatabaseToLatestSDK;
909 
921 - (void)applicationDidEnterBackground:(id)aApplication;
922 
934 - (void)applicationWillEnterForeground:(id)aApplication;
935 
949 - (void)application:(id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
950 
951 #pragma mark - Service Check
952 
970 - (void)serviceCheckWithUsername:(NSString *)aUsername
971  password:(NSString *)aPassword
972  completion:(void (^)(EMServerCheckType aType, EMError *aError))aCompletionBlock;
973 
974 #pragma mark - EM_DEPRECATED_IOS 3.7.2
982 @property (nonatomic, strong, readonly) EMPushOptions *pushOptions EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager.pushOptions] instead");
983 
984 
1004 - (EMError *)setApnsNickname:(NSString *)aNickname EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:setApnsNickname:] instead");
1005 
1020 - (void)updatePushNotifiationDisplayName:(NSString *)aDisplayName
1021  completion:(void (^)(NSString *aDisplayName, EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:updatePushNotifiationDisplayName:completion:] instead");
1022 
1042 - (EMPushOptions *)getPushOptionsFromServerWithError:(EMError **)pError EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:getPushOptionsFromServerWithError:] instead");
1043 
1055 - (void)getPushNotificationOptionsFromServerWithCompletion:(void (^)(EMPushOptions *aOptions, EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[IEMPushManager:getPushNotificationOptionsFromServerWithCompletion:] instead");
1056 
1072 - (EMError *)updatePushOptionsToServer EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1073 
1085 - (void)updatePushNotificationOptionsToServerWithCompletion:(void (^)(EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1086 
1087 #pragma mark - EM_DEPRECATED_IOS 3.2.3
1088 
1100 - (void)addDelegate:(id<EMClientDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMCallManager addDelegate:delegateQueue:] instead");
1101 
1102 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
1103 
1126 - (void)asyncRegisterWithUsername:(NSString *)aUsername
1127  password:(NSString *)aPassword
1128  success:(void (^)())aSuccessBlock
1129  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerWithUsername:password:completion: instead");
1130 
1131 
1150 - (void)asyncLoginWithUsername:(NSString *)aUsername
1151  password:(NSString *)aPassword
1152  success:(void (^)())aSuccessBlock
1153  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -loginWithUsername:password:completion: instead");
1154 
1171 - (void)asyncLogout:(BOOL)aIsUnbindDeviceToken
1172  success:(void (^)())aSuccessBlock
1173  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -logout:completion: instead");
1174 
1175 
1191 - (void)asyncBindDeviceToken:(NSData *)aDeviceToken
1192  success:(void (^)())aSuccessBlock
1193  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerForRemoteNotificationsWithDeviceToken:completion: instead");
1194 
1211 - (void)asyncSetApnsNickname:(NSString *)aNickname
1212  success:(void (^)())aSuccessBlock
1213  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotifiationDisplayName:copletion: instead");
1214 
1228 - (void)asyncGetPushOptionsFromServer:(void (^)(EMPushOptions *aOptions))aSuccessBlock
1229  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -getPushOptionsFromServerWithCompletion: instead");
1230 
1245 - (void)asyncUpdatePushOptionsToServer:(void (^)())aSuccessBlock
1246  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotificationOptionsToServerWithCompletion: instead");
1247 
1261 - (void)asyncUploadLogToServer:(void (^)())aSuccessBlock
1262  failure:(void (^)(EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -uploadDebugLogToServerWithCompletion: instead");
1263 
1283 - (BOOL)dataMigrationTo3 EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -migrateDatabaseToLatestSDK instead");
1284 
1285 
1311 - (EMError *)kickDevice:(EMDeviceConfig *)aDevice
1312  username:(NSString *)aUsername
1313  password:(NSString *)aPassword EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource: instead");
1314 
1315 
1335 - (void)kickDevice:(EMDeviceConfig *)aDevice
1336  username:(NSString *)aUsername
1337  password:(NSString *)aPassword
1338  completion:(void (^)(EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource:completion: instead");
1339 @end
Definition: EMClient.h:51
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:29