### Install Dependencies with Pod Install Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/README.md Run the 'pod install' command to download and integrate the Hyphenate SDK and its dependencies into your Xcode project. ```bash $ pod install ``` -------------------------------- ### Call Initiation Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMCallManager.html Methods for starting voice and video calls. ```APIDOC ## startCall:remoteName:ext:completion: ### Description Initiates a call of a specified type to a remote user. ### Method - (void)startCall:(EMCallType)_aType_ remoteName:(NSString *)_aRemoteName_ ext:(NSString *)_aExt_ completion:(void ( ^ ) ( EMCallSession *aCallSession , EMError *aError ))_aCompletionBlock_ ### Parameters - **aType** (EMCallType) - The type of call to initiate (e.g., voice, video). - **aRemoteName** (NSString *) - The username of the callee. - **aExt** (NSString *) - Optional extension information to send with the call. - **aCompletionBlock** (void ( ^ ) ( EMCallSession *aCallSession , EMError *aError )) - A block that is executed upon completion of the call initiation, providing the call session and any error. ### Discussion This is a general method to start a call, supporting different call types. ## startVoiceCall:completion: ### Description Initiates a voice call to a specified user. ### Method - (void)startVoiceCall:(NSString *)_aUsername_ completion:(void ( ^ ) ( EMCallSession *aCallSession , EMError *aError ))_aCompletionBlock_ ### Parameters - **aUsername** (NSString *) - The username of the callee. - **aCompletionBlock** (void ( ^ ) ( EMCallSession *aCallSession , EMError *aError )) - A block that is executed upon completion, providing the call session and any error. ### Discussion Use this method for initiating standard voice calls. ## startVideoCall:completion: ### Description Initiates a video call to a specified user. ### Method - (void)startVideoCall:(NSString *)_aUsername_ completion:(void ( ^ ) ( EMCallSession *aCallSession , EMError *aError ))_aCompletionBlock_ ### Parameters - **aUsername** (NSString *) - The username of the callee. - **aSuccessBlock** (void ( ^ ) ( EMCallSession *aCallSession , EMError *aError )) - A block that is executed upon completion, providing the call session and any error. ### Discussion Use this method for initiating standard video calls. ``` -------------------------------- ### startVideoRecord: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Starts recording the video stream and saves it to the specified file path. ```APIDOC ## startVideoRecord: ### Description Start recording video. ### Method `- (BOOL)startVideoRecord:(NSString *)_aPath_` ### Parameters #### Path Parameters - **aPath** (NSString *) - Description: File save path ### Discussion Start recording video. ``` -------------------------------- ### Install CocoaPods Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/README.md Install CocoaPods using the RubyGems package manager. This is a prerequisite for managing iOS project dependencies. ```bash $ gem install cocoapods ``` -------------------------------- ### startVideoRecordingToFilePath:error: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Starts recording the video stream and saves it to a specified file path. ```APIDOC ## startVideoRecordingToFilePath:error: ### Description Start recording video. ### Method `- (void)startVideoRecordingToFilePath:(NSString *)_aPath_ error:(EMError **)_aError_` ### Parameters #### Path Parameters - **aPath** (NSString *) - Description: File saved path - **aError** (EMError **) - Description: Error ### Discussion Start recording video. ``` -------------------------------- ### sharedClient Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Get the singleton instance of the EMClient. ```APIDOC ## sharedClient ### Description Get SDK singleton instance. ### Method Signature `+ (instancetype)sharedClient` ``` -------------------------------- ### Get Chatroom Specification (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Fetches a chatroom's specification from the server. This is a synchronous method that will block the current thread. ```APIDOC ## getChatroomSpecificationFromServerWithId:error: ### Description Fetch chatroom’s specification. ### Method `getChatroomSpecificationFromServerWithId:error:` ### Parameters #### Path Parameters - **aChatroomId** (NSString) - The ID of the chatroom. - **pError** (EMError **) - Pointer to an EMError object for error details. ### Return Value - **EMChatroom *** - Chatroom instance. ### Discussion Synchronization method, will block the current thread. ``` -------------------------------- ### Get Chatroom Announcement (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Retrieves the announcement of a chatroom from the server synchronously. Returns the announcement string or an EMError. ```APIDOC ## getChatroomAnnouncementWithId:error: ### Description Get the announcement of chatroom from the server. ### Method `- (NSString *)getChatroomAnnouncementWithId:(NSString *)_aChatroomId_ error:(EMError **)_pError_` ### Parameters - **aChatroomId** (NSString) - Chatroom id - **pError** (EMError **) - error ### Return Value The announcement of chatroom ### Discussion Get the announcement of chatroom from the server. ``` -------------------------------- ### noDisturbingStartH Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMPushOptions.html Sets or gets the start hour for the Do Not Disturb mode. ```APIDOC ## Property: noDisturbingStartH ### Description No disturbing mode start time (in hour). ### Type `NSInteger` ### Declared In `EMPushOptions.h` ``` -------------------------------- ### initializeSDKWithOptions: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Initialize the Hyphenate SDK with the provided options. ```APIDOC ## initializeSDKWithOptions: ### Description Initialize the SDK. ### Method Signature `- (EMError *)initializeSDKWithOptions:(EMOptions *)_aOptions_` ### Parameters * **aOptions** (EMOptions *) - SDK setting options. ### Return Value * EMError - An error object if initialization fails, otherwise nil. ``` -------------------------------- ### optionsWithAppkey: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMOptions.html Initializes and returns an SDK settings options instance with the provided application key. ```APIDOC ## + optionsWithAppkey:(NSString *)_aAppkey_ ### Description Get a SDK setting options instance. ### Method + ### Parameters #### Parameters - **aAppkey** (NSString *) - App‘s unique identifier ### Return Value SDK’s setting options instance ### Discussion Get a SDK setting options instance ``` -------------------------------- ### init Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMChatroom.html Initializes a chatroom instance. It is recommended to use `chatroomWithId:` instead. ```APIDOC ## - init ### Description Initialize chatroom instance. ### Method - ### Return Value nil ### Discussion Initialize chatroom instance Please use [+chatroomWithId:] ``` -------------------------------- ### Get Self IDs on Other Platform (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Get the ID list of the current account on another platform (Windows or Web) asynchronously. ```APIDOC ## getSelfIdsOnOtherPlatformWithCompletion: ### Description Get the ID list of the current account on another platform (Windows or Web) asynchronously. ### Method `- (void)getSelfIdsOnOtherPlatformWithCompletion:(void ( ^ ) ( NSArray *aList , EMError *aError ))_aCompletionBlock_` ### Parameters #### Path Parameters - **aCompletionBlock** (void (^)(NSArray *, EMError *)) - The callback block of completion, receiving the list of IDs and an error object. ``` -------------------------------- ### Get Self IDs on Other Platform (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Get the ID list of the current account on another platform (Windows or Web). This is a synchronous method. ```APIDOC ## getSelfIdsOnOtherPlatformWithError: ### Description Get the ID list of the current account on another platform (Windows or Web). ### Method `- (NSArray *)getSelfIdsOnOtherPlatformWithError:(EMError **)_pError_` ### Parameters #### Path Parameters - **pError** (EMError **) - Pointer to an EMError object to capture any errors. ### Return Value - **NSArray** - A list of IDs on other platforms. ``` -------------------------------- ### Load Messages Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMConversation.html Loads messages from the local database starting from a specified message ID, with a given count and search direction. If the message ID is nil, loading starts from the latest message. ```APIDOC ## Load Messages ### Description Loads messages from the local database starting from a specified message ID, with a given count and search direction. If the message ID is nil, loading starts from the latest message. ### Method Signature - (void)loadMessagesStartFromId:(NSString *)_aMessageId_ count:(int)_aCount_ searchDirection:(EMMessageSearchDirection)_aDirection_ completion:(void ( ^ ) (NSArray *aMessages , EMError *aError ))_aCompletionBlock_ ### Parameters - **aMessageId** (NSString *) - The ID of the message to start loading from. If nil, starts from the latest message. - **aCount** (int) - The maximum number of messages to load. - **aDirection** (EMMessageSearchDirection) - The direction to search for messages (e.g., EMMessageSearchDirectionUp for messages before aMessageId, EMMessageSearchDirectionDown for messages after aMessageId). - **aCompletionBlock** (void ( ^ ) (NSArray *aMessages , EMError *aError )) - A block that is executed upon completion, receiving an array of messages and an error object if any. ``` -------------------------------- ### options Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Provides access to the SDK's configuration settings. ```APIDOC ## options ### Description SDK setting options ### Property `@property (nonatomic, strong, readonly) EMOptions *options` ``` -------------------------------- ### loginWithUsername:password:completion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Login to the IM server using username and password asynchronously. ```APIDOC ## loginWithUsername:password:completion: ### Description Login with password. ### Method Signature `- (void)loginWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_ completion:(void ( ^ ) ( NSString *aUsername , EMError *aError ))_aCompletionBlock_` ### Parameters * **aUsername** (NSString *) - The username for login. * **aPassword** (NSString *) - The password for login. * **aCompletionBlock** (void ( ^ ) ( NSString *aUsername , EMError *aError )) - The callback block executed upon completion. ``` -------------------------------- ### currentUsername Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Gets the username of the currently logged-in user. ```APIDOC ## currentUsername ### Description Current logged in user’s username ### Property `@property (nonatomic, strong, readonly) NSString *currentUsername` ``` -------------------------------- ### Initialization Methods Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMFileMessageBody.html Methods to initialize an EMFileMessageBody instance. ```APIDOC ## Initialization Methods ### `initWithLocalPath:displayName:` Initialize a file message body instance `- (instancetype)initWithLocalPath:(NSString *)_aLocalPath_ displayName:(NSString *)_aDisplayName_` **Parameters:** - `aLocalPath` (NSString *) - Local path of the attachment - `aDisplayName` (NSString *) - Display name of the attachment **Return Value:** File message body instance **Discussion:** Initialize a file message body instance ### `initWithData:displayName:` Initialize a file message body instance `- (instancetype)initWithData:(NSData *)_aData_ displayName:(NSString *)_aDisplayName_` **Parameters:** - `aData` (NSData *) - The data of attachment file - `aDisplayName` (NSString *) - Display name of the attachment **Return Value:** File message body instance **Discussion:** Initialize a file message body instance ``` -------------------------------- ### Get Video Width Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Retrieves the original video width. ```APIDOC ## getVideoWidth ### Description Get video original width ### Method `- (int)getVideoWidth` ### Return Value Video original width ``` -------------------------------- ### noDisturbingEndH Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMPushOptions.html Sets or gets the end hour for the Do Not Disturb mode. ```APIDOC ## Property: noDisturbingEndH ### Description No disturbing mode end time (in hour). ### Type `NSInteger` ### Declared In `EMPushOptions.h` ``` -------------------------------- ### asyncAcceptJoinApplication Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Accepts a user's application to join a group. Requires owner's authority. ```APIDOC ## asyncAcceptJoinApplication:applicant:success:failure: ### Description Accepts a user's application to join a group. Requires owner's authority. ### Method `- (void)asyncAcceptJoinApplication:(NSString *)_aGroupId_ applicant:(NSString *)_aUsername_ success:(void ( ^ ) ( ))_aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))_aFailureBlock_` ### Parameters #### Path Parameters * **aGroupId** (NSString) - Group id * **aUsername** (NSString) - The applicant * **aSuccessBlock** (void ( ^ ) ( )) - The callback block of success * **aFailureBlock** (void ( ^ ) ( EMError *aError )) - The callback block of failure ### Discussion Accept user’s application, need owner‘s authority ``` -------------------------------- ### noDisturbStatus Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMPushOptions.html Sets or gets the Do Not Disturb setting for notification messages. ```APIDOC ## Property: noDisturbStatus ### Description No disturbing setting of notification message. ### Type `EMPushNoDisturbStatus` ### Declared In `EMPushOptions.h` ``` -------------------------------- ### Initialize Group Instance Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMGroup.html Initializes a group instance. It is recommended to use `+groupWithId:` instead. ```APIDOC ## Initialize Group Instance ### Description Initialize a group instance. ### Discussion Please use `+groupWithId:`. ### Return Value - **nil** (object) - Returns nil. ``` -------------------------------- ### displayStyle Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMPushOptions.html Sets or gets the display style of the notification message. ```APIDOC ## Property: displayStyle ### Description Display style of notification message. ### Type `EMPushDisplayStyle` ### Declared In `EMPushOptions.h` ``` -------------------------------- ### Initialization Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMImageMessageBody.html Initializes an image message body instance with the original image data and optional thumbnail data. ```APIDOC ## Initialization ### Description Initializes an image message body instance with the original image data and optional thumbnail data. ### Method - (instancetype)initWithData:(NSData *)_aData_ thumbnailData:(NSData *)_aThumbnailData_ ### Parameters #### Parameters - **aData** (NSData *) - Original image object in NSData format. - **aThumbnailData** (NSData *) - Thumbnail in NSData format. Will not push to server, but only for local usage. ### Return Value An image message body instance. ``` -------------------------------- ### groupWithId: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMGroup.html Get group instance, create a instance if it does not exist. ```APIDOC ## `+ groupWithId:` Get group instance, create a instance if it does not exist. `+ (instancetype)groupWithId:(NSString *)_aGroupId_` ``` -------------------------------- ### Create Chatroom (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Creates a chatroom asynchronously with specified details. The result is returned via a completion block. ```APIDOC ## createChatroomWithSubject:description:invitees:message:maxMembersCount:completion: ### Description Create a group. ### Method `createChatroomWithSubject:description:invitees:message:maxMembersCount:completion:` ### Parameters #### Path Parameters - **aSubject** (NSString) - Group subject. - **aDescription** (NSString) - Group description. - **aInvitees** (NSArray) - Group members, without creater. - **aMessage** (NSString) - Invitation message. - **aMaxMembersCount** (NSInteger) - Max members count. - **aCompletionBlock** (void ( ^ ) ( EMChatroom *aChatroom , EMError *aError )) - The callback block of completion. ### Discussion Create a group. ``` -------------------------------- ### registerWithUsername:password:completion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Register a new IM user asynchronously. It is highly recommended to use the REST API for registration from your backend for better reliability. ```APIDOC ## registerWithUsername:password:completion: ### Description Register a new IM user. ### Method Signature `- (void)registerWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_ completion:(void ( ^ ) ( NSString *aUsername , EMError *aError ))_aCompletionBlock_` ### Parameters * **aUsername** (NSString *) - The desired username. * **aPassword** (NSString *) - The password for the new user. * **aCompletionBlock** (void ( ^ ) ( NSString *aUsername , EMError *aError )) - The callback block executed upon completion. ### Note To ensure good reliability, registering new IM user via REST API from developer backend is highly recommended. ``` -------------------------------- ### Get Chatroom Announcement Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Retrieves the announcement for a specified chatroom from the server. ```APIDOC ## getChatroomAnnouncementWithId:completion: ### Description Get the announcement of chatroom from the server. ### Method `- (void)getChatroomAnnouncementWithId:(NSString *)_aChatroomId_ completion:(void ( ^ ) ( NSString *aAnnouncement , EMError *aError ))_aCompletionBlock_` ### Parameters * **aChatroomId** (NSString) - Chatroom id * **aCompletionBlock** (void (^)(NSString *aAnnouncement, EMError *aError)) - The callback block of completion ``` -------------------------------- ### asyncGetMyGroupsFromServer Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Fetches all of the user's groups from the server, updating both memory and the database upon success. ```APIDOC ## asyncGetMyGroupsFromServer ### Description Get all of user’s groups from server, will update group list in memory and DB after success. ### Method `- (void)asyncGetMyGroupsFromServer:(void ( ^ ) ( NSArray *aList ))_aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))_aFailureBlock_` ### Parameters * `aSuccessBlock` - The callback block of success. * `aFailureBlock` - The callback block of failure. ### Discussion Get all of user’s groups from server, will update group list in memory and DB after success. ### Declared In `IEMGroupManager.h` ``` -------------------------------- ### Get Contacts from Server (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Retrieve all contacts from the server asynchronously. ```APIDOC ## asyncGetContactsFromServer:failure: ### Description Get all the friends from the server asynchronously. ### Method `- (void)asyncGetContactsFromServer:(void ( ^ ) ( NSArray *aList ))_aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))_aFailureBlock_` ### Parameters #### Path Parameters - **aSuccessBlock** (void (^)(NSArray *)) - The callback block executed on successful retrieval of contacts. - **aFailureBlock** (void (^)(EMError *)) - The callback block executed if an error occurs during retrieval. ``` -------------------------------- ### Get Blacklist from DB Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Retrieve the blacklist of users from the local database. ```APIDOC ## getBlackListFromDB ### Description Get the blacklist of users from the local database. ### Method `- (NSArray *)getBlackListFromDB` ### Return Value - **NSArray** - A list of users in the blacklist. ``` -------------------------------- ### getLoggedInDevicesFromServerWithUsername:password:error: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Retrieves all device information for logged-in users from the server. This is a synchronous operation. ```APIDOC ## getLoggedInDevicesFromServerWithUsername:password:error: ### Description Get all the device information [EMDeviceConfig](../Classes/EMDeviceConfig.html) that logged in to the server. ### Method `- (NSArray *)getLoggedInDevicesFromServerWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_ error:(EMError **)_pError_` ### Parameters * `aUsername` - The username for authentication. * `aPassword` - The password for authentication. * `pError` - Pointer to an EMError object to store any error information. ### Return Value An array of EMDeviceConfig objects representing logged-in devices. ### Discussion Synchronization method will block the current thread. ``` -------------------------------- ### asyncAddOccupants:toGroup:welcomeMessage:success:failure: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Invites users to join a specified group. Requires owner's authority. A welcome message can be included. ```APIDOC ## asyncAddOccupants:toGroup:welcomeMessage:success:failure: ### Description Invite User to join a group. ### Method Objective-C ### Parameters - **aOccupants** (NSArray) - Invited users - **aGroupId** (NSString) - Group id - **aWelcomeMessage** (NSString) - Welcome message - **aSuccessBlock** (void (^)(EMGroup *aGroup)) - The callback block of success - **aFailureBlock** (void (^)(EMError *aError)) - The callback block of failure ### Discussion Invite User to join a group ``` -------------------------------- ### Get Contacts from DB Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Retrieve all contacts stored in the local database. ```APIDOC ## getContactsFromDB ### Description Get all the friends from the local database. ### Method `- (NSArray *)getContactsFromDB` ### Return Value - **NSArray** - A list of contacts. ``` -------------------------------- ### getAllChatroomsFromServerWithCompletion Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Asynchronously retrieves all chatrooms from the server. ```APIDOC ## getAllChatroomsFromServerWithCompletion: ### Description Get all the chatrooms from server. ### Method `- (void)getAllChatroomsFromServerWithCompletion:(void ( ^ ) ( NSArray *aList , EMError *aError ))_aCompletionBlock_` ### Parameters #### Path Parameters * **_aCompletionBlock_** (void ( ^ ) (NSArray *aList , EMError *aError)) - The callback block of completion. * **aList** (NSArray) - The list of chatrooms. * **aError** (EMError) - An error object if the operation failed. ``` -------------------------------- ### Get Voice Volume Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Retrieves the current voice volume of the call. ```APIDOC ## getVoiceVolume ### Description Get voice volume of the call ### Method `- (int)getVoiceVolume` ### Return Value Volume ``` -------------------------------- ### Call Extension Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Gets the call extension. The type must be NSString. ```APIDOC ## ext ### Description Call extention Type must be NSString ### Property `@property (nonatomic, readonly) NSString *ext` ``` -------------------------------- ### asyncFetchChatroomInfo Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Asynchronously fetches the specification of a chatroom, optionally including the members list. ```APIDOC ## asyncFetchChatroomInfo:includeMembersList:success:failure: ### Description Fetch chatroom’s specification. ### Method `- (void)asyncFetchChatroomInfo:(NSString *)_aChatroomId_ includeMembersList:(BOOL)_aIncludeMembersList_ success:(void ( ^ ) ( EMChatroom *aChatroom ))_aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))_aFailureBlock_` ### Parameters #### Path Parameters * **_aChatroomId_** (NSString) - Required - Chatroom id * **_aIncludeMembersList_** (BOOL) - Required - Whether get member list * **_aSuccessBlock_** (void ( ^ ) (EMChatroom *aChatroom)) - The callback block of success. * **aChatroom** (EMChatroom) - The fetched chatroom object. * **_aFailureBlock_** (void ( ^ ) (EMError *aError)) - The callback block of failure. * **aError** (EMError) - An error object if the operation failed. ``` -------------------------------- ### applicationDidEnterBackground: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Handles the application entering the background state by disconnecting from the server. ```APIDOC ## applicationDidEnterBackground: ### Description Disconnect from server when app enters background. ### Method Called when the application transitions to the background. ### Parameters #### Path Parameters - **aApplication** (id) - The application object (UIApplication). ``` -------------------------------- ### Get Public Groups From Server Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Methods for retrieving public groups from the server. ```APIDOC ## asyncGetPublicGroupsFromServerWithCursor:pageSize:success:failure: ### Description Asynchronously retrieves public groups from the server using cursor-based pagination. ### Parameters - **cursor** (NSString *) - The cursor for pagination. - **pageSize** (NSInteger) - The number of groups per page. - **success** (void (^)(NSArray *groups, NSString *cursor, EMError *error)) - A block that is called with the list of groups and the next cursor. - **failure** (void (^)(EMError *error)) - A block that is called when the operation fails. ## getPublicGroupsFromServerWithCursor:pageSize:completion: ### Description Retrieves public groups from the server using cursor-based pagination. ### Parameters - **cursor** (NSString *) - The cursor for pagination. - **pageSize** (NSInteger) - The number of groups per page. - **completion** (void (^)(NSArray *groups, NSString *cursor, EMError *error)) - A block that is called with the list of groups and the next cursor. ## getPublicGroupsFromServerWithCursor:pageSize:error: ### Description Retrieves public groups from the server using cursor-based pagination and handles potential errors. ### Parameters - **cursor** (NSString *) - The cursor for pagination. - **pageSize** (NSInteger) - The number of groups per page. - **error** (EMError *) - An error object if the operation fails. ``` -------------------------------- ### Create Chatroom (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Creates a chatroom with specified details. This is a synchronous method that will block the current thread. ```APIDOC ## createChatroomWithSubject:description:invitees:message:maxMembersCount:error: ### Description Create a chatroom. ### Method `createChatroomWithSubject:description:invitees:message:maxMembersCount:error:` ### Parameters #### Path Parameters - **aSubject** (NSString) - Subject of the chatroom. - **aDescription** (NSString) - Description of the chatroom. - **aInvitees** (NSArray) - Members to invite (excluding the creator). - **aMessage** (NSString) - Invitation message. - **aMaxMembersCount** (NSInteger) - Maximum number of members allowed in the chatroom. - **pError** (EMError **) - Pointer to an EMError object for error details. ### Return Value - **EMChatroom *** - The created chatroom object. ### Discussion Synchronization method will block the current thread. ``` -------------------------------- ### Get Last Received Message Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMConversation.html Retrieves the last received message in the conversation. ```APIDOC ## Get Last Received Message ### `lastReceivedMessage` Retrieves the last received message. `- (EMMessage *)lastReceivedMessage` #### Return Value Message instance. ``` -------------------------------- ### Get Video Lost Rate Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Retrieves the video package lost rate. ```APIDOC ## getVideoLostRateInPercent ### Description Get video package lost rate ### Method `- (int)getVideoLostRateInPercent` ### Return Value Video package lost rate ``` -------------------------------- ### asyncRegisterWithUsername:password:success:failure: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Asynchronously registers a new user with the specified username and password. Provides callbacks for success and failure. ```APIDOC ## asyncRegisterWithUsername:password:success:failure: ### Description Register a new user. ### Method Asynchronous method for user registration. ### Parameters #### Path Parameters - **aUsername** (NSString) - Username for the new user. - **aPassword** (NSString) - Password for the new user. - **aSuccessBlock** (void (^)(void)) - The callback block executed on successful registration. - **aFailureBlock** (void (^)(EMError *aError)) - The callback block executed on registration failure, providing an error object. ``` -------------------------------- ### Accept Join Application Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Methods for accepting applications to join a group. ```APIDOC ## acceptJoinApplication:applicant: ### Description Accepts an application from a user to join a group. ### Parameters - **groupId** (NSString *) - The ID of the group. - **applicant** (NSString *) - The identifier of the applicant. ## asyncAcceptJoinApplication:applicant:success:failure: ### Description Asynchronously accepts an application from a user to join a group. ### Parameters - **groupId** (NSString *) - The ID of the group. - **applicant** (NSString *) - The identifier of the applicant. - **success** (void (^)(EMGroup *group)) - A block that is called when the operation succeeds. - **failure** (void (^)(EMError *error)) - A block that is called when the operation fails. ``` -------------------------------- ### Get My Groups From Server Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Methods for retrieving the current user's groups from the server. ```APIDOC ## asyncGetMyGroupsFromServer:failure: ### Description Asynchronously retrieves all groups the current user is a member of from the server. ### Parameters - **failure** (void (^)(EMError *error)) - A block that is called when the operation fails. ## getMyGroupsFromServerWithError: ### Description Retrieves all groups the current user is a member of from the server and handles potential errors. ### Parameters - **error** (EMError *) - An error object if the operation fails. ## getJoinedGroupsFromServerWithCompletion: ### Description Retrieves all groups the current user has joined from the server. ### Parameters - **completion** (void (^)(NSArray *groups, EMError *error)) - A block that is called with the list of groups. ## getJoinedGroupsFromServerWithPage:pageSize:completion: ### Description Retrieves groups the current user has joined from the server with pagination. ### Parameters - **pageNumber** (NSInteger) - The page number to retrieve. - **pageSize** (NSInteger) - The number of groups per page. - **completion** (void (^)(NSArray *groups, EMError *error)) - A block that is called with the list of groups. ## getJoinedGroupsFromServerWithPage:pageSize:error: ### Description Retrieves groups the current user has joined from the server with pagination and handles potential errors. ### Parameters - **pageNumber** (NSInteger) - The page number to retrieve. - **pageSize** (NSInteger) - The number of groups per page. - **error** (EMError *) - An error object if the operation fails. ## getJoinedGroups ### Description Retrieves all groups the current user has joined. ``` -------------------------------- ### Configure Podfile for Hyphenate SDK Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/README.md Add the Hyphenate SDK dependency to your project's Podfile. Ensure you are using the correct spec repository source. ```ruby source 'https://github.com/CocoaPods/Specs.git' target 'projectTarget' do pod 'Hyphenate' end ``` -------------------------------- ### Get Video Latency Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Retrieves the video latency in milliseconds, which changes in real time. ```APIDOC ## getVideoLatency ### Description Get video latency, in milliseconds, changing in real time ### Method `- (int)getVideoLatency` ### Return Value The delay time ``` -------------------------------- ### Make Video Call Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMCallManager.html Initiates a video call to a specified username. ```APIDOC ## makeVideoCall:error: ### Description Start a video call session ### Method - (EMCallSession *)makeVideoCall:(NSString *)_aUsername_ error:(EMError **)_pError_ ### Parameters #### Path Parameters - **aUsername** (NSString) - Required - The callee's username - **pError** (EMError **) - Required - Error object to capture any errors ### Return Value - EMCallSession - Session instance ### Discussion Start a video call session ``` -------------------------------- ### Get Group Instance Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMGroup.html Retrieves a group instance by its ID. If the group does not exist, it will be created. ```APIDOC ## Get Group Instance ### Description Get group instance, create a instance if it does not exist. ### Parameters #### Path Parameters - **aGroupId** (string) - Required - Group id ### Return Value - **Group instance** (object) - Description of the returned group instance. ``` -------------------------------- ### kickAllDevicesWithUsername:password:completion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Asynchronously forces all logged-in devices for a specified user to log out. A completion block is provided to handle the result of the operation. ```APIDOC ## kickAllDevicesWithUsername:password:completion: ### Description Force all logged in device to logout. ### Method Asynchronous method. ### Parameters #### Path Parameters - **aUsername** (NSString) - Username - **aPassword** (NSString) - Password - **aCompletionBlock** (void (^)(EMError *aError)) - The callback block of completion. ### Return Value None. ``` -------------------------------- ### getLoggedInDevicesFromServerWithUsername:password:completion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Retrieves all device information for logged-in users from the server asynchronously. ```APIDOC ## getLoggedInDevicesFromServerWithUsername:password:completion: ### Description Get all the device information [EMDeviceConfig](../Classes/EMDeviceConfig.html) that logged in to the server. ### Method `- (void)getLoggedInDevicesFromServerWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_ completion:(void ( ^ ) ( NSArray *aList , EMError *aError ))_aCompletionBlock_` ### Parameters * `aUsername` - The username for authentication. * `aPassword` - The password for authentication. * `aCompletionBlock` - The callback block of completion, receiving a list of logged-in devices and an error object. ``` -------------------------------- ### registerWithUsername:password: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Register a new IM user with a username and password. It is highly recommended to use the REST API for registration from your backend for better reliability. ```APIDOC ## registerWithUsername:password: ### Description Register a new IM user. ### Method Signature `- (EMError *)registerWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_` ### Parameters * **aUsername** (NSString *) - The desired username. * **aPassword** (NSString *) - The password for the new user. ### Return Value * EMError - An error object if registration fails, otherwise nil. ### Note To ensure good reliability, registering new IM user via REST API from developer backend is highly recommended. ``` -------------------------------- ### Get Video Frame Rate Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Retrieves the video frame rate, which changes in real time. ```APIDOC ## getVideoFrameRate ### Description Get video frame rate, changing in real time ### Method `- (int)getVideoFrameRate` ### Return Value The video frame rate ``` -------------------------------- ### Get Group Specification (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Fetches group specification from the server asynchronously using a completion block. ```APIDOC ## getGroupSpecificationFromServerWithId:completion: ### Description Fetch group specification, including: ID, name, description, setting, owner, admins. ### Method `- (void)getGroupSpecificationFromServerWithId:(NSString *)_aGroupId_ completion:(void ( ^ ) ( EMGroup *aGroup , EMError *aError ))_aCompletionBlock_` ### Parameters * **aGroupId** (NSString) - Group id * **aCompletionBlock** (void ( ^ ) ( EMGroup *aGroup , EMError *aError )) - The callback block of completion ### Discussion Fetch group specification, including: ID, name, description, setting, owner, admins. ``` -------------------------------- ### displayName Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMPushOptions.html Sets or gets the user's nickname to be displayed in Apple Push Notification service messages. ```APIDOC ## Property: displayName ### Description User’s nickname to be displayed in apple push notification service messages. ### Type `NSString *` ### Declared In `EMPushOptions.h` ``` -------------------------------- ### uploadDebugLogToServerWithCompletion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Uploads the debugging log to the server asynchronously. ```APIDOC ## uploadDebugLogToServerWithCompletion: ### Description Upload debugging log to server. ### Method `- (void)uploadDebugLogToServerWithCompletion:(void ( ^ ) ( EMError *aError ))_aCompletionBlock_` ### Parameters * `aCompletionBlock` - The callback of completion block. ``` -------------------------------- ### asyncLoginWithUsername:password:success:failure: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Asynchronously logs in a user with the provided username and password. Callbacks are provided for success and failure scenarios. ```APIDOC ## asyncLoginWithUsername:password:success:failure: ### Description Login. ### Method Asynchronous method for user login. ### Parameters #### Path Parameters - **aUsername** (NSString) - Username for login. - **aPassword** (NSString) - Password for login. - **aSuccessBlock** (void (^)(void)) - The callback block executed on successful login. - **aFailureBlock** (void (^)(EMError *aError)) - The callback block executed on login failure, providing an error object. ``` -------------------------------- ### EMOptions Properties Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMOptions.html Configuration options for the Hyphenate SDK. ```APIDOC ## EMOptions Properties ### Description Properties to configure the Hyphenate SDK settings. ### Properties - **appkey** (NSString *) - Readonly - Application’s unique identifier. - **enableConsoleLog** (BOOL) - Whether print log to console, default is NO. - **logLevel** (EMLogLevel) - Log output level, default is EMLogLevelDebug. - **usingHttpsOnly** (BOOL) - Whether using https only, default is NO. - **isAutoLogin** (BOOL) - Whether auto login, default is YES. Value is saved locally. When initializing the EMOptions, SDK looks for the local value first. - **isDeleteMessagesWhenExitGroup** (BOOL) - Whether to delete all the group messages when leaving the group, default is YES. - **isDeleteMessagesWhenExitChatRoom** (BOOL) - Whether to delete all the chat room messages when leaving the chat room, default is YES. - **isChatroomOwnerLeaveAllowed** (BOOL) - If allow chat room’s owner can leave the chat room, default is YES. - **isAutoAcceptGroupInvitation** (BOOL) - Whether to automatically accept group invitation, default is YES. - **isAutoAcceptFriendInvitation** (BOOL) - Whether to automatically approve friend request, default is NO. - **enableDeliveryAck** (BOOL) - Whether to send delivery acknowledgement, default is NO. If set to YES, SDK will automatically send a delivery acknowledgement when receiving a chat message. - **sortMessageByServerTime** (BOOL) - Whether to sort messages by server received time when loading message from database, default is YES. - **apnsCertName** (NSString *) - Certificate name of Apple Push Notification Service. ``` -------------------------------- ### Get Group Blacklist (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Retrieves the blacklist of a group from the server. Requires owner or admin permissions. This is a synchronous method. ```APIDOC ## getGroupBlacklistFromServerWithId:pageNumber:pageSize:error: ### Description Get the blacklist of group from the server, need owner / admin permissions. ### Method `- (NSArray *)getGroupBlacklistFromServerWithId:(NSString *)_aGroupId_ pageNumber:(NSInteger)_aPageNum_ pageSize:(NSInteger)_aPageSize_ error:(EMError **)_pError_` ### Parameters * **aGroupId** (NSString) - Group id * **aPageNum** (NSInteger) - Page number * **aPageSize** (NSInteger) - Page size * **pError** (EMError **) - Error ### Discussion Get the blacklist of group from the server, need owner / admin permissions. ``` -------------------------------- ### Get Group Member List (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Retrieves a list of group members from the server asynchronously using a completion block. ```APIDOC ## getGroupMemberListFromServerWithId:cursor:pageSize:completion: ### Description Get the list of group members from the server. ### Method `- (void)getGroupMemberListFromServerWithId:(NSString *)_aGroupId_ cursor:(NSString *)_aCursor_ pageSize:(NSInteger)_aPageSize_ completion:(void ( ^ ) ( EMCursorResult *aResult , EMError *aError ))_aCompletionBlock_` ### Parameters * **aGroupId** (NSString) - Group id * **aCursor** (NSString) - Cursor, input nil the first time * **aPageSize** (NSInteger) - Page size * **aCompletionBlock** (void ( ^ ) ( EMCursorResult *aResult , EMError *aError )) - The callback block of completion ### Discussion Get the list of group members from the server. ``` -------------------------------- ### asyncUploadLogToServer Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Uploads logs to the server. This asynchronous method uses callbacks for success and failure. ```APIDOC ## asyncUploadLogToServer:failure: ### Description Uploads logs to the server. ### Method `- (void)asyncUploadLogToServer:(void ( ^ ) ( ))aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))aFailureBlock_` ### Parameters #### Path Parameters * **aSuccessBlock** (void ( ^ ) ( )) - The callback block of success * **aFailureBlock** (void ( ^ ) ( EMError *aError )) - The callback block of failure ``` -------------------------------- ### Get Group Member List (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMGroupManager.html Retrieves a list of group members from the server using pagination. This is a synchronous method. ```APIDOC ## getGroupMemberListFromServerWithId:cursor:pageSize:error: ### Description Get the list of group members from the server. ### Method `- (EMCursorResult *)getGroupMemberListFromServerWithId:(NSString *)_aGroupId_ cursor:(NSString *)_aCursor_ pageSize:(NSInteger)_aPageSize_ error:(EMError **)_pError_` ### Parameters * **aGroupId** (NSString) - Group id * **aCursor** (NSString) - Cursor, input nil the first time * **aPageSize** (NSInteger) - Page size * **pError** (EMError **) - Error ### Return Value List and cursor (EMCursorResult *) ### Discussion Get the list of group members from the server. ``` -------------------------------- ### loginWithUsername:password: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Login to the IM server using username and password. This is a synchronous method and will block the current thread. ```APIDOC ## loginWithUsername:password: ### Description Login with password. ### Method Signature `- (EMError *)loginWithUsername:(NSString *)_aUsername_ password:(NSString *)_aPassword_` ### Parameters * **aUsername** (NSString *) - The username for login. * **aPassword** (NSString *) - The password for login. ### Return Value * EMError - An error object if login fails, otherwise nil. ### Discussion Synchronization method will block the current thread. ``` -------------------------------- ### asyncGetPushOptionsFromServer Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Retrieves APNS options from the server. This asynchronous method uses callbacks for success and failure. ```APIDOC ## asyncGetPushOptionsFromServer:failure: ### Description Retrieves APNS options from the server. ### Method `- (void)asyncGetPushOptionsFromServer:(void ( ^ ) ( EMPushOptions *aOptions ))aSuccessBlock_ failure:(void ( ^ ) ( EMError *aError ))aFailureBlock_` ### Parameters #### Path Parameters * **aSuccessBlock** (void ( ^ ) ( EMPushOptions *aOptions )) - The callback block of success * **aFailureBlock** (void ( ^ ) ( EMError *aError )) - The callback block of failure ``` -------------------------------- ### Get Push Notification Options From Server (Asynchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Retrieves Apple Push Notification Service options from the server asynchronously. ```APIDOC ## getPushNotificationOptionsFromServerWithCompletion: ### Description Retrieves Apple Push Notification Service options from the server asynchronously. ### Method `- (void)getPushNotificationOptionsFromServerWithCompletion:(void ( ^ ) ( EMPushOptions *aOptions , EMError *aError ))_aCompletionBlock_` ### Parameters * **aCompletionBlock** (void ( ^ ) ( EMPushOptions *aOptions , EMError *aError )) - The callback block executed upon completion, receiving options and error. ``` -------------------------------- ### getChatroomsFromServerWithPage:pageSize:completion: Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMChatroomManager.html Asynchronously retrieves a specified number of chatrooms from the server using a completion block. ```APIDOC ## getChatroomsFromServerWithPage:pageSize:completion: ### Description Asynchronously retrieves a specified number of chatrooms from the server using a completion block. ### Method - (void)getChatroomsFromServerWithPage:(NSInteger)_aPageNum_ pageSize:(NSInteger)_aPageSize_ completion:(void ( ^ ) ( EMPageResult *aResult , EMError *aError ))_aCompletionBlock_ ### Parameters - **aPageNum** (NSInteger) - Page number - **aPageSize** (NSInteger) - Page size - **aCompletionBlock** (void ( ^ ) ( EMPageResult *aResult , EMError *aError )) - The callback block of completion ### Declared In IEMChatroomManager.h ``` -------------------------------- ### Get Push Options From Server (Synchronous) Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMClient.html Retrieves Apple Push Notification Service options from the server. This is a synchronous method. ```APIDOC ## getPushOptionsFromServerWithError: ### Description Retrieves Apple Push Notification Service options from the server. This is a synchronization method that will block the current thread. ### Method `- (EMPushOptions *)getPushOptionsFromServerWithError:(EMError **)_pError_` ### Parameters * **pError** (EMError **) - A pointer to an EMError object to capture any errors. ### Return Value EMPushOptions - The retrieved push notification options. ``` -------------------------------- ### asyncGetBlackListFromServer Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Protocols/IEMContactManager.html Retrieves the blacklist of users from the server. ```APIDOC ## asyncGetBlackListFromServer ### Description Get the blacklist from the server. ### Method Asynchronous method. ### Parameters - **aSuccessBlock** (void (^)(NSArray *aList)) - Required - The callback block of success. - **aFailureBlock** (void (^)(EMError *aError)) - Required - The callback block of failure. ### Discussion Get the blacklist from the server. ``` -------------------------------- ### Remote Video Resolution Source: https://github.com/hyphenateinc/hyphenate-sdk-ios/blob/master/HyphenateSDK/doc/Classes/EMCallSession.html Gets the remote video resolution. Returns ({-1, 1}) if no data is available, typically after a few seconds of calling. ```APIDOC ## remoteVideoResolution ### Description Remote video resolution return (-1, 1) if no data is available. Usually no data until few seconds of calling later. ### Property `@property (nonatomic, readonly) CGSize remoteVideoResolution` ```