8#import <Foundation/Foundation.h>
10#import "EMClientDelegate.h"
12#import "EMMultiDevicesDelegate.h"
14#import "EMPushOptions.h"
16#import "IEMChatManager.h"
17#import "IEMChatroomManager.h"
18#import "IEMContactManager.h"
19#import "IEMGroupManager.h"
20#import "IEMThreadManager.h"
21#import "IEMPushManager.h"
22#import "IEMUserInfoManager.h"
23#import "IEMTranslateManager.h"
24#import "IEMPresenceManager.h"
25#import "IEMStatisticsManager.h"
27#import "EMDeviceConfig.h"
28#import "EMLocalNotificationManager.h"
29#import "EMTranslationResult.h"
30#import "EMLogDelegate.h"
45typedef NS_ENUM(NSInteger, EMServerCheckType) {
46 EMServerCheckAccountValidation = 0,
47 EMServerCheckGetDNSListFromServer,
48 EMServerCheckGetTokenFromServer,
50 EMServerCheckDoLogout,
75@property(nonatomic, strong, readonly) NSString * _Nonnull version;
84@property(nonatomic, strong, readonly) NSString * _Nullable currentUsername;
93@property(nonatomic, strong, readonly)
EMOptions * _Nonnull options;
102@property(nonatomic, strong, readonly) id<IEMChatManager> _Nullable chatManager;
111@property(nonatomic, strong, readonly) id<IEMContactManager> _Nullable contactManager;
120@property(nonatomic, strong, readonly) id<IEMGroupManager> _Nullable groupManager;
129@property (nonatomic, strong, readonly) id<IEMThreadManager> _Nullable threadManager;
138@property(nonatomic, strong, readonly) id<IEMChatroomManager> _Nullable roomManager;
147@property (nonatomic, strong, readonly) id<IEMPushManager> _Nullable pushManager;
167@property(nonatomic, readonly) BOOL isAutoLogin;
180@property(nonatomic, readonly) BOOL isLoggedIn;
192@property(nonatomic, readonly) BOOL isConnected;
205@property(nonatomic, readonly) NSString * _Nullable accessUserToken;
214@property(nonatomic, strong, readonly) id<IEMUserInfoManager> _Nullable userInfoManager;
223@property (nonatomic, strong, readonly) id<IEMPresenceManager> _Nullable presenceManager;
232@property (nonatomic, strong, readonly) id<IEMStatisticsManager> _Nullable statisticsManager;
241+ (instancetype _Nonnull )sharedClient;
251- (NSString *)version;
253#pragma mark - Delegate
268 delegateQueue:(dispatch_queue_t _Nullable )aQueue;
281- (void)removeDelegate:(
id _Nonnull )aDelegate;
297 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addMultiDevices(delegate:queue:));
312#pragma mark - Initialize SDK
329- (
EMError *_Nullable)initializeSDKWithOptions:(
EMOptions * _Nonnull )aOptions;
331#pragma mark - Change AppKey
354- (
EMError *_Nullable)changeAppkey:(NSString * _Nonnull)aAppkey;
356#pragma mark - User Registration
385- (
EMError *_Nullable)registerWithUsername:(NSString * _Nonnull)aUsername
386 password:(NSString * _Nonnull)aPassword;
412- (void)registerWithUsername:(NSString *_Nonnull)aUsername
413 password:(NSString *_Nonnull)aPassword
414 completion:(
void (^_Nullable)(NSString * _Nonnull aUsername,
EMError * _Nullable aError))aCompletionBlock;
438- (void)fetchTokenWithUsername:(NSString *_Nonnull)aUsername
439 password:(NSString *_Nonnull)aPassword
440 completion:(
void (^_Nullable)(NSString * _Nullable aToken,
EMError * _Nullable aError))aCompletionBlock;
467- (
EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
468 password:(NSString *_Nonnull)aPassword;
494- (void)loginWithUsername:(NSString *_Nonnull)aUsername
495 password:(NSString *_Nonnull)aPassword
496 completion:(
void (^_Nullable)(NSString * _Nonnull aUsername,
EMError *_Nullable aError))aCompletionBlock;
523- (
EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
524 token:(NSString *_Nonnull)aToken;
546- (void)loginWithUsername:(NSString *_Nonnull)aUsername
547 token:(NSString *_Nonnull)aToken
548 completion:(
void (^_Nullable)(NSString * _Nonnull aUsername,
EMError *_Nullable aError))aCompletionBlock;
571- (
EMError *_Nullable)loginWithUsername:(NSString *_Nonnull)aUsername
572 agoraToken:(NSString *_Nonnull)aAgoraToken;
595- (void)loginWithUsername:(NSString *_Nonnull)aUsername
596 agoraToken:(NSString *_Nonnull)aAgoraToken
597 completion:(
void (^_Nullable)(NSString * _Nonnull aUsername,
EMError *_Nullable aError))aCompletionBlock;
622- (
EMError *_Nullable)renewToken:(NSString *_Nonnull)newAgoraToken;
650- (
EMError *_Nullable)logout:(BOOL)aIsUnbindDeviceToken;
675- (void)logout:(BOOL)aIsUnbindDeviceToken
676 completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
678#pragma mark - PushKit
703- (
EMError *_Nullable)bindPushKitToken:(NSData *_Nullable)aPushToken;
726- (void)registerPushKitToken:(NSData *_Nullable)aPushToken
727 completion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
752- (
EMError *_Nullable)unBindPushKitToken;
775- (void)unRegisterPushKitTokenWithCompletion:(
void (^_Nullable)(
EMError * _Nullable aError))aCompletionBlock;
803- (
EMError *_Nullable)bindDeviceToken:(NSData *_Nonnull)aDeviceToken;
826- (void)registerForRemoteNotificationsWithDeviceToken:(NSData *_Nonnull)aDeviceToken
827 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
851- (void)bindFCMToken:(NSString* _Nonnull)aFCMToken
852 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
873- (
EMError *_Nullable)uploadLogToServer;
886- (void)uploadDebugLogToServerWithCompletion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
911- (NSString *_Nullable)getLogFilesPath:(
EMError **_Nullable)pError;
932- (void)getLogFilesPathWithCompletion:(
void (^_Nullable)(NSString *_Nullable aPath,
EMError * _Nullable aError))aCompletionBlock;
953- (void)log:(NSString *_Nonnull)aLog;
969 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addLog(delegate:queue:));
982- (void)removeLogDelegate:(
id<
EMLogDelegate>_Nonnull)aDelegate NS_SWIFT_NAME(removeLog(delegate:));
984#pragma mark - Multi Devices
1009- (NSArray<
EMDeviceConfig*> *_Nullable)getLoggedInDevicesFromServerWithUsername:(NSString * _Nonnull)aUsername
1010 password:(NSString * _Nonnull)aPassword
1011 error:(
EMError ** _Nullable)pError;
1033- (void)getLoggedInDevicesFromServerWithUsername:(NSString *_Nonnull)aUsername
1034 password:(NSString *_Nonnull)aPassword
1035 completion:(
void (^_Nullable)(NSArray<
EMDeviceConfig*> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
1057- (void)getLoggedInDevicesFromServerWithUserId:(NSString *_Nonnull)aUserID
1058 token:(NSString *_Nonnull)aToken
1059 completion:(
void (^_Nullable)(NSArray<
EMDeviceConfig*> * _Nullable aList,
EMError *_Nullable aError))aCompletionBlock;
1088- (
EMError *_Nullable)kickDeviceWithUsername:(NSString *_Nonnull)aUsername
1089 password:(NSString *_Nonnull)aPassword
1090 resource:(NSString *_Nonnull)aResource;
1118- (void)kickDeviceWithUsername:(NSString *_Nonnull)aUsername
1119 password:(NSString *_Nonnull)aPassword
1120 resource:(NSString *_Nonnull)aResource
1121 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1148- (void)kickDeviceWithUserId:(NSString *_Nonnull)aUserID
1149 token:(NSString *_Nonnull)aToken
1150 resource:(NSString *_Nonnull)aResource
1151 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1172- (void)kickAllDevicesWithUserId:(NSString *_Nonnull)aUserID
1173 token:(NSString *_Nonnull)aToken
1174 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1197- (
EMError *_Nullable)kickAllDevicesWithUsername:(NSString *_Nonnull)aUsername
1198 password:(NSString *_Nonnull)aPassword;
1220- (void)kickAllDevicesWithUsername:(NSString *_Nonnull)aUsername
1221 password:(NSString *_Nonnull)aPassword
1222 completion:(
void (^_Nullable)(
EMError *_Nullable aError))aCompletionBlock;
1253- (void)applicationDidEnterBackground:(
id _Nonnull )aApplication;
1268- (void)applicationWillEnterForeground:(
id _Nonnull )aApplication;
1285- (void)application:(
id _Nonnull)application didReceiveRemoteNotification:(NSDictionary * _Nullable)userInfo;
1287#pragma mark - Service Check
1316- (void)serviceCheckWithUsername:(NSString *_Nonnull)aUsername
1317 password:(NSString *_Nonnull)aPassword
1318 completion:(
void (^_Nullable)(EMServerCheckType aType,
EMError *_Nullable aError))aCompletionBlock;
1320@property (nonatomic, strong, readonly) id<IEMTranslateManager> _Nonnull translateManager EM_DEPRECATED_IOS(3_8_9, 3_9_5,
"Use -IEMChatManager translateMessage: instead");
Definition: EMClient.h:64
Definition: EMDeviceConfig.h:25
Definition: EMOptions.h:52
Definition: EMPushOptions.h:58
Definition: EMClientDelegate.h:46
Definition: EMLogDelegate.h:18
Definition: EMMultiDevicesDelegate.h:78