8 #import <Foundation/Foundation.h>
10 #import "EMClientDelegate.h"
11 #import "EMMultiDevicesDelegate.h"
13 #import "EMPushOptions.h"
16 #import "IEMChatManager.h"
17 #import "IEMContactManager.h"
18 #import "IEMGroupManager.h"
19 #import "IEMChatroomManager.h"
20 #import "IEMPushManager.h"
21 #import "IEMUserInfoManager.h"
23 #import "EMDeviceConfig.h"
33 EMServerCheckAccountValidation = 0,
34 EMServerCheckGetDNSListFromServer,
35 EMServerCheckGetTokenFromServer,
37 EMServerCheckDoLogout,
61 @property (nonatomic, strong, readonly) NSString *version;
70 @property (nonatomic, strong, readonly) NSString *currentUsername;
79 @property (nonatomic, strong, readonly)
EMOptions *options;
89 @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager;
98 @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager;
107 @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager;
116 @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager;
126 @property (nonatomic, strong, readonly) id<IEMPushManager> pushManager;
136 @property (nonatomic, readonly) BOOL isAutoLogin;
145 @property (nonatomic, readonly) BOOL isLoggedIn;
154 @property (nonatomic, readonly) BOOL isConnected;
164 @property (nonatomic, readonly) NSString *accessUserToken;
173 @property (nonatomic, strong, readonly) id<IEMUserInfoManager> userInfoManager;
182 + (instancetype)sharedClient;
185 #pragma mark - Delegate
201 delegateQueue:(dispatch_queue_t)aQueue;
214 - (void)removeDelegate:(
id)aDelegate;
230 delegateQueue:(dispatch_queue_t)aQueue;
245 #pragma mark - Initialize SDK
265 #pragma mark - Change AppKey
282 - (
EMError *)changeAppkey:(NSString *)aAppkey;
285 #pragma mark - User Registeration
308 - (
EMError *)registerWithUsername:(NSString *)aUsername
309 password:(NSString *)aPassword;
331 - (void)registerWithUsername:(NSString *)aUsername
332 password:(NSString *)aPassword
333 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
354 - (void)fetchTokenWithUsername:(NSString *)aUsername
355 password:(NSString *)aPassword
356 completion:(
void (^)(NSString *aToken,
EMError *aError))aCompletionBlock;
382 - (
EMError *)loginWithUsername:(NSString *)aUsername
383 password:(NSString *)aPassword;
401 - (void)loginWithUsername:(NSString *)aUsername
402 password:(NSString *)aPassword
403 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
426 - (
EMError *)loginWithUsername:(NSString *)aUsername
427 token:(NSString *)aToken;
445 - (void)loginWithUsername:(NSString *)aUsername
446 token:(NSString *)aToken
447 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
449 #pragma mark - Logout
471 - (
EMError *)logout:(BOOL)aIsUnbindDeviceToken;
488 - (void)logout:(BOOL)aIsUnbindDeviceToken
489 completion:(
void (^)(
EMError *aError))aCompletionBlock;
491 #pragma mark - PushKit
512 - (
EMError *)bindPushKitToken:(NSData *)aPushToken;
527 - (void)registerPushKitToken:(NSData *)aPushToken
528 completion:(
void (^)(
EMError *aError))aCompletionBlock;
545 - (
EMError *)unBindPushKitToken;
556 - (void)unRegisterPushKitTokenWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
579 - (
EMError *)bindDeviceToken:(NSData *)aDeviceToken;
594 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
595 completion:(
void (^)(
EMError *aError))aCompletionBlock;
615 - (
EMError *)uploadLogToServer;
628 - (void)uploadDebugLogToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
649 - (NSString *)getLogFilesPath:(
EMError **)pError;
662 - (void)getLogFilesPathWithCompletion:(
void (^)(NSString *aPath,
EMError *aError))aCompletionBlock;
675 - (void)log:(NSString*)aLog;
677 #pragma mark - Multi Devices
702 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
703 password:(NSString *)aPassword
722 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
723 password:(NSString *)aPassword
724 completion:(
void (^)(NSArray *aList,
EMError *aError))aCompletionBlock;
751 - (
EMError *)kickDeviceWithUsername:(NSString *)aUsername
752 password:(NSString *)aPassword
753 resource:(NSString *)aResource;
776 - (void)kickDeviceWithUsername:(NSString *)aUsername
777 password:(NSString *)aPassword
778 resource:(NSString *)aResource
779 completion:(
void (^)(
EMError *aError))aCompletionBlock;
802 - (
EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
803 password:(NSString *)aPassword;
820 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
821 password:(NSString *)aPassword
822 completion:(
void (^)(
EMError *aError))aCompletionBlock;
843 - (BOOL)migrateDatabaseToLatestSDK;
856 - (void)applicationDidEnterBackground:(
id)aApplication;
869 - (void)applicationWillEnterForeground:(
id)aApplication;
884 - (void)application:(
id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
886 #pragma mark - Service Check
905 - (void)serviceCheckWithUsername:(NSString *)aUsername
906 password:(NSString *)aPassword
907 completion:(
void (^)(EMServerCheckType aType,
EMError *aError))aCompletionBlock;
909 #pragma mark - EM_DEPRECATED_IOS 3.7.2
917 @property (nonatomic, strong, readonly)
EMPushOptions *pushOptions EM_DEPRECATED_IOS(3_1_0, 3_7_2,
"Use -[IEMPushManager.pushOptions] instead");
939 - (
EMError *)setApnsNickname:(NSString *)aNickname EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:setApnsNickname:] instead");
955 - (void)updatePushNotifiationDisplayName:(NSString *)aDisplayName
956 completion:(
void (^)(NSString *aDisplayName,
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:updatePushNotifiationDisplayName:completion:] instead");
977 - (
EMPushOptions *)getPushOptionsFromServerWithError:(
EMError **)pError EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:getPushOptionsFromServerWithError:] instead");
990 - (void)getPushNotificationOptionsFromServerWithCompletion:(
void (^)(
EMPushOptions *aOptions,
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:getPushNotificationOptionsFromServerWithCompletion:] instead");
1007 - (
EMError *)updatePushOptionsToServer EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1020 - (void)updatePushNotificationOptionsToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1022 #pragma mark - EM_DEPRECATED_IOS 3.2.3
1035 - (void)addDelegate:(
id<
EMClientDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMCallManager addDelegate:delegateQueue:] instead");
1037 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
1061 - (void)asyncRegisterWithUsername:(NSString *)aUsername
1062 password:(NSString *)aPassword
1063 success:(
void (^)())aSuccessBlock
1064 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerWithUsername:password:completion: instead");
1085 - (void)asyncLoginWithUsername:(NSString *)aUsername
1086 password:(NSString *)aPassword
1087 success:(
void (^)())aSuccessBlock
1088 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -loginWithUsername:password:completion: instead");
1106 - (void)asyncLogout:(BOOL)aIsUnbindDeviceToken
1107 success:(
void (^)())aSuccessBlock
1108 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -logout:completion: instead");
1126 - (void)asyncBindDeviceToken:(NSData *)aDeviceToken
1127 success:(
void (^)())aSuccessBlock
1128 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -registerForRemoteNotificationsWithDeviceToken:completion: instead");
1146 - (void)asyncSetApnsNickname:(NSString *)aNickname
1147 success:(
void (^)())aSuccessBlock
1148 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotifiationDisplayName:copletion: instead");
1163 - (void)asyncGetPushOptionsFromServer:(
void (^)(
EMPushOptions *aOptions))aSuccessBlock
1164 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -getPushOptionsFromServerWithCompletion: instead");
1180 - (void)asyncUpdatePushOptionsToServer:(
void (^)())aSuccessBlock
1181 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotificationOptionsToServerWithCompletion: instead");
1196 - (void)asyncUploadLogToServer:(
void (^)())aSuccessBlock
1197 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -uploadDebugLogToServerWithCompletion: instead");
1218 - (BOOL)dataMigrationTo3 EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -migrateDatabaseToLatestSDK instead");
1247 username:(NSString *)aUsername
1248 password:(NSString *)aPassword EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource: instead");
1271 username:(NSString *)aUsername
1272 password:(NSString *)aPassword
1273 completion:(
void (^)(
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource:completion: instead");
Definition: EMClient.h:50
Definition: EMDeviceConfig.h:18
Definition: EMOptions.h:40
Definition: EMPushOptions.h:59
Definition: EMClientDelegate.h:38
Definition: EMMultiDevicesDelegate.h:56
Definition: IEMPushManager.h:29