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"
24 #import "EMLocalNotificationManager.h"
33 typedef NS_ENUM(NSInteger, EMServerCheckType) {
34 EMServerCheckAccountValidation = 0,
35 EMServerCheckGetDNSListFromServer,
36 EMServerCheckGetTokenFromServer,
38 EMServerCheckDoLogout,
62 @property (nonatomic, strong, readonly) NSString *version;
71 @property (nonatomic, strong, readonly) NSString *currentUsername;
80 @property (nonatomic, strong, readonly)
EMOptions *options;
90 @property (nonatomic, strong, readonly) id<IEMChatManager> chatManager;
99 @property (nonatomic, strong, readonly) id<IEMContactManager> contactManager;
108 @property (nonatomic, strong, readonly) id<IEMGroupManager> groupManager;
117 @property (nonatomic, strong, readonly) id<IEMChatroomManager> roomManager;
127 @property (nonatomic, strong, readonly) id<IEMPushManager> pushManager;
137 @property (nonatomic, readonly) BOOL isAutoLogin;
146 @property (nonatomic, readonly) BOOL isLoggedIn;
155 @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;
470 - (
EMError *)loginWithUsername:(NSString *)aUsername
471 agoraToken:(NSString *)aAgoraToken;
489 - (void)loginWithUsername:(NSString *)aUsername
490 agoraToken:(NSString *)aAgoraToken
491 completion:(
void (^)(NSString *aUsername,
EMError *aError))aCompletionBlock;
512 - (
EMError *)renewToken:(NSString *)newAgoraToken;
514 #pragma mark - Logout
536 - (
EMError *)logout:(BOOL)aIsUnbindDeviceToken;
553 - (void)logout:(BOOL)aIsUnbindDeviceToken
554 completion:(
void (^)(
EMError *aError))aCompletionBlock;
556 #pragma mark - PushKit
577 - (
EMError *)bindPushKitToken:(NSData *)aPushToken;
592 - (void)registerPushKitToken:(NSData *)aPushToken
593 completion:(
void (^)(
EMError *aError))aCompletionBlock;
610 - (
EMError *)unBindPushKitToken;
621 - (void)unRegisterPushKitTokenWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
644 - (
EMError *)bindDeviceToken:(NSData *)aDeviceToken;
659 - (void)registerForRemoteNotificationsWithDeviceToken:(NSData *)aDeviceToken
660 completion:(
void (^)(
EMError *aError))aCompletionBlock;
680 - (
EMError *)uploadLogToServer;
693 - (void)uploadDebugLogToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock;
714 - (NSString *)getLogFilesPath:(
EMError **)pError;
727 - (void)getLogFilesPathWithCompletion:(
void (^)(NSString *aPath,
EMError *aError))aCompletionBlock;
740 - (void)log:(NSString*)aLog;
742 #pragma mark - Multi Devices
767 - (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
768 password:(NSString *)aPassword
787 - (void)getLoggedInDevicesFromServerWithUsername:(NSString *)aUsername
788 password:(NSString *)aPassword
789 completion:(
void (^)(NSArray *aList,
EMError *aError))aCompletionBlock;
816 - (
EMError *)kickDeviceWithUsername:(NSString *)aUsername
817 password:(NSString *)aPassword
818 resource:(NSString *)aResource;
841 - (void)kickDeviceWithUsername:(NSString *)aUsername
842 password:(NSString *)aPassword
843 resource:(NSString *)aResource
844 completion:(
void (^)(
EMError *aError))aCompletionBlock;
867 - (
EMError *)kickAllDevicesWithUsername:(NSString *)aUsername
868 password:(NSString *)aPassword;
885 - (void)kickAllDevicesWithUsername:(NSString *)aUsername
886 password:(NSString *)aPassword
887 completion:(
void (^)(
EMError *aError))aCompletionBlock;
908 - (BOOL)migrateDatabaseToLatestSDK;
921 - (void)applicationDidEnterBackground:(
id)aApplication;
934 - (void)applicationWillEnterForeground:(
id)aApplication;
949 - (void)application:(
id)application didReceiveRemoteNotification:(NSDictionary *)userInfo;
951 #pragma mark - Service Check
970 - (void)serviceCheckWithUsername:(NSString *)aUsername
971 password:(NSString *)aPassword
972 completion:(
void (^)(EMServerCheckType aType,
EMError *aError))aCompletionBlock;
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");
1004 - (
EMError *)setApnsNickname:(NSString *)aNickname EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:setApnsNickname:] instead");
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");
1042 - (
EMPushOptions *)getPushOptionsFromServerWithError:(
EMError **)pError EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:getPushOptionsFromServerWithError:] instead");
1055 - (void)getPushNotificationOptionsFromServerWithCompletion:(
void (^)(
EMPushOptions *aOptions,
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "Use -[
IEMPushManager:getPushNotificationOptionsFromServerWithCompletion:] instead");
1072 - (
EMError *)updatePushOptionsToServer EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1085 - (void)updatePushNotificationOptionsToServerWithCompletion:(
void (^)(
EMError *aError))aCompletionBlock EM_DEPRECATED_IOS(3_1_0, 3_7_2, "");
1087 #pragma mark - EM_DEPRECATED_IOS 3.2.3
1100 - (void)addDelegate:(
id<
EMClientDelegate>)aDelegate EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -[IEMCallManager addDelegate:delegateQueue:] instead");
1102 #pragma mark - EM_DEPRECATED_IOS < 3.2.3
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");
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");
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");
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");
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");
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");
1245 - (void)asyncUpdatePushOptionsToServer:(
void (^)())aSuccessBlock
1246 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -updatePushNotificationOptionsToServerWithCompletion: instead");
1261 - (void)asyncUploadLogToServer:(
void (^)())aSuccessBlock
1262 failure:(
void (^)(
EMError *aError))aFailureBlock EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -uploadDebugLogToServerWithCompletion: instead");
1283 - (BOOL)dataMigrationTo3 EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use -migrateDatabaseToLatestSDK instead");
1312 username:(NSString *)aUsername
1313 password:(NSString *)aPassword EM_DEPRECATED_IOS(3_1_0, 3_2_2, "Use - kickDeviceWithUsername:password:resource: instead");
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");
Definition: EMClient.h:51
Definition: EMDeviceConfig.h:18
Definition: EMOptions.h:40
Definition: EMPushOptions.h:59
Definition: EMClientDelegate.h:38
Definition: EMMultiDevicesDelegate.h:56
Definition: IEMPushManager.h:29