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"
21 #import "EMDeviceConfig.h"
31 EMServerCheckAccountValidation = 0,
32 EMServerCheckGetDNSListFromServer,
33 EMServerCheckGetTokenFromServer,
35 EMServerCheckDoLogout,
53 @property (nonatomic, strong, readonly) NSString *version;
62 @property (nonatomic, strong, readonly) NSString *currentUsername;
71 @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;
127 @property (nonatomic, readonly) BOOL isAutoLogin;
136 @property (nonatomic, readonly) BOOL isLoggedIn;
145 @property (nonatomic, readonly) BOOL isConnected;
154 + (instancetype)sharedClient;
157 #pragma mark - Delegate
173 delegateQueue:(dispatch_queue_t)aQueue;
186 - (void)removeDelegate:(
id)aDelegate;
202 delegateQueue:(dispatch_queue_t)aQueue;
217 #pragma mark - Initialize SDK
237 #pragma mark - Change AppKey
254 - (
EMError *)changeAppkey:(NSString *)aAppkey;
257 #pragma mark - User Registeration
280 - (
EMError *)registerWithUsername:(NSString *)aUsername
281 password:(NSString *)aPassword;
303 - (void)registerWithUsername:(NSString *)aUsername
304 password:(NSString *)aPassword
305 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
326 - (void)fetchTokenWithUsername:(NSString *)aUsername
327 password:(NSString *)aPassword
328 completion:(
void (^)(NSString *aToken,
EMError *aError))aCompletionBlock;
351 - (
EMError *)loginWithUsername:(NSString *)aUsername
352 password:(NSString *)aPassword;
370 - (void)loginWithUsername:(NSString *)aUsername
371 password:(NSString *)aPassword
372 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
395 - (
EMError *)loginWithUsername:(NSString *)aUsername
396 token:(NSString *)aToken;
414 - (void)loginWithUsername:(NSString *)aUsername
415 token:(NSString *)aToken
416 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
418 #pragma mark - Logout
440 - (
EMError *)logout:(BOOL)aIsUnbindDeviceToken;
457 - (void)logout:(BOOL)aIsUnbindDeviceToken
458 completion:(
void (^)(
EMError *aError))aCompletionBlock;
481 - (
EMError *)bindDeviceToken:(NSData *)aDeviceToken;
496 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
497 completion:(
void (^)(
EMError *aError))aCompletionBlock;
518 - (
EMError *)setApnsNickname:(NSString *)aNickname;
534 - (void)updatePushNotifiationDisplayName:(NSString *)aDisplayName
535 completion:(
void (^)(NSString *aDisplayName,
EMError *aError))aCompletionBlock;
569 - (void)getPushNotificationOptionsFromServerWithCompletion:(
void (^)(
EMPushOptions *aOptions,
EMError *aError))aCompletionBlock;
586 - (
EMError *)updatePushOptionsToServer;
599 - (void)updatePushNotificationOptionsToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
618 - (
EMError *)uploadLogToServer;
631 - (void)uploadDebugLogToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
652 - (NSString *)getLogFilesPath:(
EMError **)pError;
665 - (void)getLogFilesPathWithCompletion:(
void (^)(NSString *aPath,
EMError *aError))aCompletionBlock;
667 #pragma mark - Multi Devices
692 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
693 password:(NSString *)aPassword
713 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
714 password:(NSString *)aPassword
715 completion:(
void (^)(NSArray *aList,
EMError *aError))aCompletionBlock;
742 - (
EMError *)kickDeviceWithUsername:(NSString *)aUsername
743 password:(NSString *)aPassword
744 resource:(NSString *)aResource;
767 - (void)kickDeviceWithUsername:(NSString *)aUsername
768 password:(NSString *)aPassword
769 resource:(NSString *)aResource
770 completion:(
void (^)(
EMError *aError))aCompletionBlock;
793 - (
EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
794 password:(NSString *)aPassword;
811 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
812 password:(NSString *)aPassword
813 completion:(
void (^)(
EMError *aError))aCompletionBlock;
834 - (BOOL)migrateDatabaseToLatestSDK;
847 - (void)applicationDidEnterBackground:(
id)aApplication;
860 - (void)applicationWillEnterForeground:(
id)aApplication;
875 - (void)application:(
id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
877 #pragma mark - Service Check
896 - (void)serviceCheckWithUsername:(NSString *)aUsername
897 password:(NSString *)aPassword
898 completion:(
void (^)(EMServerCheckType aType,
EMError *aError))aCompletionBlock;
900 #pragma mark - EM_DEPRECATED_IOS 3.2.3
915 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
939 - (void)asyncRegisterWithUsername:(NSString *)aUsername
940 password:(NSString *)aPassword
941 success:(
void (^)())aSuccessBlock
942 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -registerWithUsername:password:completion:");
962 - (void)asyncLoginWithUsername:(NSString *)aUsername
963 password:(NSString *)aPassword
964 success:(
void (^)())aSuccessBlock
965 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -loginWithUsername:password:completion");
983 - (void)asyncLogout:(BOOL)aIsUnbindDeviceToken
984 success:(
void (^)())aSuccessBlock
985 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -logout:completion:");
1002 - (void)asyncBindDeviceToken:(NSData *)aDeviceToken
1003 success:(
void (^)())aSuccessBlock
1004 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -registerForRemoteNotificationsWithDeviceToken:completion:");
1022 - (void)asyncSetApnsNickname:(NSString *)aNickname
1023 success:(
void (^)())aSuccessBlock
1024 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -updatePushNotifiationDisplayName:copletion");
1039 - (void)asyncGetPushOptionsFromServer:(
void (^)(
EMPushOptions *aOptions))aSuccessBlock
1040 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -getPushOptionsFromServerWithCompletion:");
1056 - (void)asyncUpdatePushOptionsToServer:(
void (^)())aSuccessBlock
1057 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -updatePushNotificationOptionsToServerWithCompletion:");
1072 - (void)asyncUploadLogToServer:(
void (^)())aSuccessBlock
1073 failure:(
void (^)(
EMError *aError))aFailureBlock __deprecated_msg("Use -uploadDebugLogToServerWithCompletion:");
1094 - (BOOL)dataMigrationTo3 __deprecated_msg("Use -migrateDatabaseToLatestSDK");
1123 username:(NSString *)aUsername
1124 password:(NSString *)aPassword __deprecated_msg("Use - kickDeviceWithUsername:password:resource:");
1147 username:(NSString *)aUsername
1148 password:(NSString *)aPassword
1149 completion:(
void (^)(
EMError *aError))aCompletionBlock __deprecated_msg("Use - kickDeviceWithUsername:password:resource:completion:");