HyphenateChatSDK 5.0.0
EMClient.h
1
8#import <Foundation/Foundation.h>
9
10#import "EMClientDelegate.h"
11#import "EMError.h"
12#import "EMMultiDevicesDelegate.h"
13#import "EMOptions.h"
14#import "EMPushOptions.h"
15
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 "IEMPresenceManager.h"
24
25#import "EMDeviceConfig.h"
26#import "EMLocalNotificationManager.h"
27#import "EMLogDelegate.h"
28
39@interface EMClient : NSObject
40{
41 EMPushOptions *_pushOptions;
42}
43
51@property(nonatomic, strong, readonly) NSString * _Nonnull version;
52
60@property(atomic, strong, readonly) NSString * _Nullable currentUsername;
61
69@property(nonatomic, strong, readonly) EMOptions * _Nonnull options;
70
78@property(nonatomic, strong, readonly) id<IEMChatManager> _Nullable chatManager;
79
87@property(nonatomic, strong, readonly) id<IEMContactManager> _Nullable contactManager;
88
96@property(nonatomic, strong, readonly) id<IEMGroupManager> _Nullable groupManager;
97
105@property (nonatomic, strong, readonly) id<IEMThreadManager> _Nullable threadManager;
106
114@property(nonatomic, strong, readonly) id<IEMChatroomManager> _Nullable roomManager;
115
123@property (nonatomic, strong, readonly) id<IEMPushManager> _Nullable pushManager;
124
136@property(nonatomic, readonly) BOOL isLoggedIn;
137
148@property(nonatomic, readonly) BOOL isConnected;
149
161@property(nonatomic, readonly) NSString * _Nullable accessUserToken;
162
170@property(nonatomic, strong, readonly) id<IEMUserInfoManager> _Nullable userInfoManager;
171
179@property (nonatomic, strong, readonly) id<IEMPresenceManager> _Nullable presenceManager;
180
181-(instancetype _Nonnull ) init __attribute__((unavailable("call sharedClient instead")));
182-(instancetype _Nonnull ) copy __attribute__((unavailable("call sharedClient instead")));
183-(instancetype _Nonnull ) mutableCopy __attribute__((unavailable("call sharedClient instead")));
191+ (instancetype _Nonnull )sharedClient;
192
193
201- (NSString *)version;
202
203#pragma mark - Delegate
204
217- (void)addDelegate:(id<EMClientDelegate>_Nonnull)aDelegate
218 delegateQueue:(dispatch_queue_t _Nullable )aQueue;
219
231- (void)removeDelegate:(id _Nonnull )aDelegate;
232
246- (void)addMultiDevicesDelegate:(id<EMMultiDevicesDelegate>_Nonnull)aDelegate
247 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addMultiDevices(delegate:queue:));
248
260- (void)removeMultiDevicesDelegate:(id<EMMultiDevicesDelegate>_Nonnull)aDelegate;
261
262#pragma mark - Initialize SDK
263
279- (EMError *_Nullable)initializeSDKWithOptions:(EMOptions * _Nonnull )aOptions;
280
281#pragma mark - Change AppKey
282
304- (EMError *_Nullable)changeAppkey:(NSString * _Nonnull)aAppkey;
305
327- (EMError *_Nullable)changeAppId:(NSString * _Nonnull)aAppId;
328
329#pragma mark - Login
330
351- (void)loginWithUsername:(NSString *_Nonnull)aUsername
352 token:(NSString *_Nonnull)aToken
353 completion:(void (^_Nullable)(NSString * _Nonnull aUsername, EMError *_Nullable aError))aCompletionBlock;
354
378- (EMError *_Nullable)renewToken:(NSString *_Nonnull)newToken;
379
403- (void)renewToken:(NSString *_Nonnull)newToken completion:(void (^_Nullable)(EMError* _Nullable aError))aCompletionBlock;
404
405#pragma mark - Logout
406
431- (EMError *_Nullable)logout:(BOOL)aIsUnbindDeviceToken;
432
456- (void)logout:(BOOL)aIsUnbindDeviceToken
457 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
458
459#pragma mark - PushKit
460
484- (EMError *_Nullable)bindPushKitToken:(NSData *_Nullable)aPushToken;
485
507- (void)registerPushKitToken:(NSData *_Nullable)aPushToken
508 completion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
509
533- (EMError *_Nullable)unBindPushKitToken;
534
556- (void)unRegisterPushKitTokenWithCompletion:(void (^_Nullable)(EMError * _Nullable aError))aCompletionBlock;
557
558#pragma mark - APNs
559
584- (EMError *_Nullable)bindDeviceToken:(NSData *_Nonnull)aDeviceToken;
585
607- (void)registerForRemoteNotificationsWithDeviceToken:(NSData *_Nonnull)aDeviceToken
608 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
609
635- (void)getRTCTokenWithChannel:(NSString* _Nullable)aChannelName
636 completion:(void (^_Nonnull)(NSUInteger rtcUId,NSString * _Nullable aToken,NSInteger expiredTs, EMError *_Nullable aError))aCompletionBlock;
637
655- (void)getUserIdByRTCUIds:(NSArray<NSNumber*>* _Nonnull)uIds completion:(void (^_Nullable)(NSDictionary<NSNumber*,NSString*> * _Nullable accountInfos, EMError *_Nullable aError))aCompletionBlock;
656
680- (void)registerForRemoteNotificationsWithCertName:(NSString *_Nonnull)aCertName
681 deviceToken:(NSData *_Nonnull)aDeviceToken
682 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
683
706- (void)bindFCMToken:(NSString* _Nonnull)aFCMToken
707 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
708
709#pragma mark - Log
710
728- (EMError *_Nullable)uploadLogToServer;
729
741- (void)uploadDebugLogToServerWithCompletion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
742
766- (NSString *_Nullable)getLogFilesPath:(EMError **_Nullable)pError;
767
787- (void)getLogFilesPathWithCompletion:(void (^_Nullable)(NSString *_Nullable aPath, EMError * _Nullable aError))aCompletionBlock;
788
808- (void)log:(NSString *_Nonnull)aLog;
809
823- (void)addLogDelegate:(id<EMLogDelegate>_Nonnull)aDelegate
824 delegateQueue:(dispatch_queue_t _Nullable )aQueue NS_SWIFT_NAME(addLog(delegate:queue:));
825
837- (void)removeLogDelegate:(id<EMLogDelegate>_Nonnull)aDelegate NS_SWIFT_NAME(removeLog(delegate:));
838
839#pragma mark - Multi Devices
840
841
842
863- (void)getLoggedInDevicesFromServerWithUserId:(NSString *_Nonnull)aUserID
864 token:(NSString *_Nonnull)aToken
865 completion:(void (^_Nullable)(NSArray<EMDeviceConfig*> * _Nullable aList, EMError *_Nullable aError))aCompletionBlock;
866
867
893- (void)kickDeviceWithUserId:(NSString *_Nonnull)aUserID
894 token:(NSString *_Nonnull)aToken
895 resource:(NSString *_Nonnull)aResource
896 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
897
917- (void)kickAllDevicesWithUserId:(NSString *_Nonnull)aUserID
918 token:(NSString *_Nonnull)aToken
919 completion:(void (^_Nullable)(EMError *_Nullable aError))aCompletionBlock;
920
932- (EMDeviceConfig * _Nullable)getDeviceConfig:(EMError **)pError;
933
934#pragma mark - iOS
935
936
950- (void)applicationDidEnterBackground:(id _Nonnull )aApplication;
951
965- (void)applicationWillEnterForeground:(id _Nonnull )aApplication;
966
982- (void)application:(id _Nonnull)application didReceiveRemoteNotification:(NSDictionary * _Nullable)userInfo;
983
984
985@end
Definition: EMClient.h:40
Definition: EMDeviceConfig.h:25
Definition: EMError.h:27
Definition: EMOptions.h:87
Definition: EMPushOptions.h:58
Definition: EMClientDelegate.h:47
Definition: EMLogDelegate.h:18
Definition: EMMultiDevicesDelegate.h:82