iOS SDK Quickstart

One-to-One Chat

Step 1 - Install SDK

The Hyphenate SDK for iOS is available on CocoaPods. CocoaPods is an open source dependency manager for Cocoa projects.

1. If you have not installed CocoaPods tool yet, please check out CocoaPods Getting Started for more detail.

2. Create a file named Podfile in the root directory of the Xcode project, and add the following line to the Podfile.

# Hyphenate iOS lite SDK
pod 'HyphenateLite'
# Hyphenate iOS SDK (Support real-time Voice & Video Calling features)
pod 'Hyphenate'

3. Open the Terminal, navigate to the directory that contains the Podfile, and run the following command.

pod install

Option 2: Download SDK from Hyphenate

1. Download Hyphenate SDK.

2. Import the SDK to your own project. For details, see Install the Hyphenate SDK.

Step 2 - Initialize the SDK

1. If CocoaPods is used, you need to import the SDK header file.

// Hyphenate iOS lite SDK
#import <HyphenateLite/EMSDK.h>
// Hyphenate iOS SDK (Support real-time Voice & Video Calling features)
#import <Hyphenate/EMSDKFull.h>

2. Implementation in AppDelegate.

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //AppKey: the registered AppKey on Hyphenate console
    //apnsCertName: the name of APNs certificate (no need to add suffix) on Hyphenate console
    EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];
    options.apnsCertName = @"istore_dev";
    [[EMClient sharedClient] initializeSDKWithOptions:options];

    return YES;
}

// The APP enters background
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[EMClient sharedClient] applicationDidEnterBackground:application];
}

// The APP enters foreground
- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[EMClient sharedClient] applicationWillEnterForeground:application];
}

Step 3 - Login

Call the login API.

[[EMClient sharedClient] loginWithUsername:@"8001"
                                  password:@"111111"
                                completion:^(NSString *aUsername, EMError *aError) {
                                    if (!aError) {
                                        NSLog(@"Login successful");
                                    } else {
                                        NSLog(@"Login failed");
                                    }
                                }];

Step 4 - Import EaseUI

Option 1: Download Hyphenate SDK and Import the EaseUI directory.

Option 2: Download the EaseUI source code and import it to your project.

https://github.com/easemob/easeui_ios/tree/sdk3.x/EaseUI/EaseUI

Step 5 - Initialize the One-to-One Chat Interface

//Hyphenate ID: @"8001"
//Conversation type: EMConversationTypeChat
EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:@"8001" conversationType:EMConversationTypeChat];

For more information about one-to-one chat, see Messaging.

Group Chat

Prerequisite: You've completed the previous steps of integrating the one-to-one chat function.

Create a Group

EMError *error = nil;
EMGroupOptions *setting = [[EMGroupOptions alloc] init];
setting.maxUsersCount = 500;
setting.style = EMGroupStylePublicOpenJoin;// Select a group type
EMGroup *group = [[EMClient sharedClient].groupManager createGroupWithSubject:@"group name" description:@"group description" invitees:@[@"6001",@"6002"] message:@"You are invited to join the group!" setting:setting error:&error];
if(!error){
    NSLog(@"Created -- %@",group);
}

Initialize the Group Chat Interface

// Group ID: @"groupId"
// Conversation type: EMConversationTypeGroupChat
EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:@"groupId" conversationType:EMConversationTypeGroupChat];

For more information about group chat, see Group Management.

Contacts

Prerequisite: You've completed the previous steps of integrating the one-to-one chat function.

Add a friend

[[EMClient sharedClient].contactManager addContact:@"8001"
                                           message:@"I want to add you as a friend."
                                        completion:^(NSString *aUsername, EMError *aError) {
                                            if (!aError) {
                                                NSLog(@"Invitation sent successfully!");
                                            }
                                        }];

// Accept a friend request
[[EMClient sharedClient].contactManager approveFriendRequestFromUser:@"8001"
                                                          completion:^(NSString *aUsername, EMError *aError) {
                                                              if (!aError) {
                                                                  NSLog(@"The friend request has been accepted");
                                                              }
                                                          }];

// Decline a friend request
[[EMClient sharedClient].contactManager declineFriendRequestFromUser:@"8001"
                                                          completion:^(NSString *aUsername, EMError *aError) {
                                                              if (!aError) {
                                                                  NSLog(@"The friend request has been declined");
                                                              }
                                                          }];

Delete a Friend

// Delete a friend
[[EMClient sharedClient].contactManager deleteContact:@"8001"
                                           completion:^(NSString *aUsername, EMError *aError) {
                                               if (!aError) {
                                                   NSLog(@"Delete successful");
                                               }
                                           }];

Obtain the Friend List

// Obtain all friends from the server
[[EMClient sharedClient].contactManager getContactsFromServerWithCompletion:^(NSArray *aList, EMError *aError) {
    if (!aError) {
        NSLog(@"Obtain friends successfully");
    }
}];
// Obtain all friends from the database
NSArray *userlist = [[EMClient sharedClient].contactManager getContacts];

For more information about group chat, see Contact Management.