環信3.0ios客戶端的整合(四)

weixin_33912445發表於2017-06-09

版本記錄

版本號 時間
V1.0 2017.06.08

前言

很多app種都整合環信做第三方資訊通訊工具,這裡我們就看一下環信的主要功能和整合方法。先給出環信3.0的地址。
感興趣的可以參考:
1. 環信ios客戶端的整合(一)
2. 環信ios客戶端的整合(二)
3. 環信ios客戶端的整合(三)

這一篇主要說一下iOS SDK 快速整合。

一、快速整合單聊功能

第 1 步:整合環信SDK

第 1 步:整合環信SDK

方式一:推薦使用Cocoapods整合環信SDK。Cocoapods提供了一個簡單的依賴管理系統,避免手動匯入產生的錯誤(首先需要確認已經安裝了Cocoapods)。

sudo gem install cocoapods
pod setup

在Xcode專案的根目錄下,新建一個空檔案,命名為Podfile,向此檔案新增以下行:

#Lite版本
pod 'HyphenateLite'
#Full版本
pod 'Hyphenate'

在Podfile目錄下,執行以下指令:

pod install

方式二:手動整合

  • 在環信官網下載SDK。

  • 手動將SDK匯入到自己的工程中(整合介紹)

第 2 步:初始化環信SDK

以Cocoapods方式整合SDK,需要引入相關標頭檔案

//Lite版本
#import <HyphenateLite/HyphenateLite.h>
//Full版本
#import <Hyphenate/Hyphenate.h>

在工程的 AppDelegate 中的以下方法中,呼叫 SDK 對應方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //AppKey:註冊的AppKey,詳細見下面註釋。
    //apnsCertName:推送證書名(不需要加字尾),詳細見下面註釋。
    EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];
    options.apnsCertName = @"istore_dev";
    [[EMClient sharedClient] initializeSDKWithOptions:options];

    return YES;
}

// APP進入後臺
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[EMClient sharedClient] applicationDidEnterBackground:application];
}

// APP將要從後臺返回
- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [[EMClient sharedClient] applicationWillEnterForeground:application];
}

第 3 步:登入環信

登入:呼叫 SDK 的登入介面進行的操作。

[[EMClient sharedClient] loginWithUsername:@"8001"
                                  password:@"111111"
                                completion:^(NSString *aUsername, EMError *aError) {
                                    if (!aError) {
                                        NSLog(@"登入成功");
                                    } else {
                                        NSLog(@"登入失敗");
                                    }
                                }];

第 4 步:匯入EaseUI

方式一:下載Release版本SDK,在自己的專案中匯入EaseUI整個目錄。

3691932-38364e5b4d9057bd.png
匯入EaseUI

方式二: 通過cocoapods整合EaseUI。

pod 'EaseUI', :git => 'https://github.com/easemob/easeui-ios-hyphenate-cocoapods.git'

第 5 步:初始化單聊頁面

//環信ID:@"8001"
//聊天型別:EMConversationTypeChat
EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:@"8001" conversationType:EMConversationTypeChat];

訊息功能整合詳細介紹


二、快速整合群聊功能

首先需要完成快速整合單聊上述步驟。

1. 建立群組

EMError *error = nil;
EMGroupOptions *setting = [[EMGroupOptions alloc] init];
setting.maxUsersCount = 500;
setting.style = EMGroupStylePublicOpenJoin;// 建立不同型別的群組,這裡需要才傳入不同的型別
EMGroup *group = [[EMClient sharedClient].groupManager createGroupWithSubject:@"群組名稱" description:@"群組描述" invitees:@[@"6001",@"6002"] message:@"邀請您加入群組" setting:setting error:&error];
if(!error){
    NSLog(@"建立成功 -- %@",group);
}

2.初始化群聊頁面

//群ID:@"groupId"
//聊天型別:EMConversationTypeGroupChat
EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:@"groupId" conversationType:EMConversationTypeGroupChat];

群組功能整合詳細介紹


三、快速整合好友功能

首先需要完成快速整合單聊上述步驟。

1.新增好友

[[EMClient sharedClient].contactManager addContact:@"8001"
                                           message:@"我想加您為好友"
                                        completion:^(NSString *aUsername, EMError *aError) {
                                            if (!aError) {
                                                NSLog(@"邀請傳送成功");
                                            }
                                        }];

//同意好友申請
[[EMClient sharedClient].contactManager approveFriendRequestFromUser:@"8001"
                                                          completion:^(NSString *aUsername, EMError *aError) {
                                                              if (!aError) {
                                                                  NSLog(@"同意好友成功");
                                                              }
                                                          }];

//拒絕好友申請
[[EMClient sharedClient].contactManager declineFriendRequestFromUser:@"8001"
                                                          completion:^(NSString *aUsername, EMError *aError) {
                                                              if (!aError) {
                                                                  NSLog(@"拒絕好友成功");
                                                              }
                                                          }];

2.刪除好友

// 刪除好友
[[EMClient sharedClient].contactManager deleteContact:@"8001"
                                           isDeleteConversation: YES
                                           completion:^(NSString *aUsername, EMError *aError) {
                                               if (!aError) {
                                                   NSLog(@"刪除成功");
                                               }
                                           }];

3.獲取好友

//從伺服器獲取所有的好友
[[EMClient sharedClient].contactManager getContactsFromServerWithCompletion:^(NSArray *aList, EMError *aError) {
    if (!aError) {
        NSLog(@"獲取成功");
    }
}];
//從資料庫獲取所有的好友
NSArray *userlist = [[EMClient sharedClient].contactManager getContacts];

好友功能整合詳細介紹


四、快速整合演示視訊

後記

未完,待續~~~~~

3691932-b63773cec1281568.jpg
風樹雪湖

相關文章