iOS SDK 介紹及匯入

來源:互聯網
上載者:User

標籤:

iOS SDK 介紹

環信 SDK 為使用者開發 IM 相關的應用提供的一套完善的開發架構。包括以下幾個部分:

  • SDK_Core: 為核心的訊息同步協議實現,完成與伺服器之間的資訊交換。
  • SDK: 是基於核心協議實現的完整的 IM 功能,實現了不同類型訊息的收發、會話管理、群組、好友、聊天室等功能。
  • EaseUI: 是一群組 IM 相關的 UI 控制項,旨在協助開發人員快速整合環信 SDK。

使用者可以基於我們提供的 Demo 實現自己的應用,也可以基於 SDK 開發自己應用。

SDK 採用模組化設計,每一模組的功能相對獨立和完善,使用者可以根據自己的需求選擇使用下面的模組:

  • EMClient: 是 SDK 的入口,主要完成登入、退出、串連管理等功能。也是擷取其他模組的入口。
  • EMChatManager: 管理訊息的收發,完成會話管理等功能。
  • EMContactManager: 負責好友的添加刪除,黑名單的管理。
  • EMGroupManager: 負責群組的管理,建立、刪除群組,管理群組成員等功能。
  • EMChatroomManager: 負責聊天室的管理。

注意:如果您是從 SDK2.x 升級到 3.0,可以參考環信 SDK 2.x到3.0升級文檔

第三方庫介紹

EaseUI 中用到的第三方庫:

  • MWPhotoBrowser: 圖片處理庫,瀏覽顯示
  • MJRefresh: 用於頁面重新整理
  • MBProgressHUD: 用於提示載入重新整理
  • libopencore-amrnb.a,libopencore-amrwb.a: 用於 amr 與 wav 之間的轉換

Demo 中用到的第三方庫:

  • Parse.framework、Bolts.framework: Demo 中的使用者資訊儲存在 Parse,這兩個庫是 Parse 所需要的庫,開發人員如果沒用 Parse 儲存,不要複製到自己項目中
  • libMobClickLibrary.a: 友盟相關的庫,用於環信 Demo 基本資料的統計,開發人員不用或者已有別的版本的庫不要複製到自己項目
配置工程 匯入 SDK

將下載好的 SDK 檔案夾(HyphenateSDK)拖入到項目中,並勾選上 Destination。

設定工程屬性

第 1 步:向Build Phases → Link Binary With Libraries 中添加依賴庫。

 

SDK 依賴庫有:

  • CoreMedia.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • MobileCoreServices.framework
  • ImageIO.framework
  • libc++.dylib
  • libz.dylib
  • libstdc++.6.0.9.dylib
  • libsqlite3.dylib

(如果使用的是 xcode7,尾碼為 tbd。)

SDK 包含即時語音依賴庫有:

  • CoreMedia.framework
  • AudioToolbox.framework
  • AVFoundation.framework
  • MobileCoreServices.framework
  • ImageIO.framework
  • libc++.dylib
  • libz.dylib
  • libstdc++.6.0.9.dylib
  • libsqlite3.dylib
  • libiconv.dylib

(如果使用的是 xcode7,尾碼為 tbd。)

第 2 步:SDK 不支援 bitcode,向 Build Settings → Linking → Enable Bitcode 中設定 NO。

編譯工程

以上步驟進行完後,編譯工程。如果沒有報錯,恭喜你,整合 SDK 成功,可以進行下一步了。

初始化 SDK

第 1 步:引入相關標頭檔 #import “EMSDK.h”。

第 2 步:在工程的 AppDelegate 中的以下方法中,調用 SDK 對應方法。

 
 1 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions 2 { 3     //AppKey:註冊的AppKey,詳細見下面注釋。 4     //apnsCertName:推送認證名(不需要加尾碼),詳細見下面注釋。 5     EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"]; 6     options.apnsCertName = @"istore_dev"; 7     [[EMClient sharedClient] initializeSDKWithOptions:options]; 8   9     return YES;10 }11  12 // APP進入後台13 - (void)applicationDidEnterBackground:(UIApplication *)application14 {15     [[EMClient sharedClient] applicationDidEnterBackground:application];16 }17  18 // APP將要從後台返回19 - (void)applicationWillEnterForeground:(UIApplication *)application20 {21     [[EMClient sharedClient] applicationWillEnterForeground:application];22 }

調用的 SDK 介面參數解釋如下:

  • AppKey: 區別 APP 的標識,參考開發人員註冊及管理後台。
  • apnsCertName: iOS 中推送認證名稱,參考製作與上傳推送認證。

環信為 IM 部分提供了 APNS 推送功能,如果您要使用,請跳轉到APNS離線推送。

註冊

註冊模式分兩種,開放註冊和授權註冊。

  • 只有開放註冊時,才可以用戶端註冊。開放註冊是為了測試使用,正式環境中不推薦使用該方式註冊環信帳號。
  • 授權註冊的流程應該是您伺服器通過環信提供的 REST API 註冊,之後儲存到您的伺服器或返回給用戶端。
 1 #import "RegistViewController.h" 2 #import "EMSDK.h" // 環信的架構 3 @interface RegistViewController () 4 // 使用者名稱 5 @property (weak, nonatomic) IBOutlet UITextField *userNameTextFiled; 6  7 // 密碼 8 @property (weak, nonatomic) IBOutlet UITextField *passwordTextField; 9 10 11 @end12 13 @implementation RegistViewController14 15 - (void)viewDidLoad {16     [super viewDidLoad];17     // Do any additional setup after loading the view.18 }19 20 // 點擊註冊按鈕21 - (IBAction)didClickRegistButton:(id)sender {22     23     if (self.userNameTextFiled.text.length == 0 || self.passwordTextField.text.length == 0) {24         NSLog(@"使用者名稱密碼不可為空");25         return;26     }27     28     // 環信的註冊方法29     30     EMError *error = [[EMClient sharedClient] registerWithUsername:self.userNameTextFiled.text password:self.passwordTextField.text];31     NSLog(@"error = %@", error);32     if (!error) {33         NSLog(@"註冊成功");34     }35 36 }
登入

登入:調用 SDK 的登入介面進行的操作。

 1 #import "ViewController.h" 2 #import "EMSDK.h" 3 @interface ViewController () 4 // 使用者名稱 5 @property (weak, nonatomic) IBOutlet UITextField *UserNameFiledText; 6  7 // 密碼 8 @property (weak, nonatomic) IBOutlet UITextField *passwordFieldText; 9 10 11 @end12 13 @implementation ViewController14 15 - (void)viewDidLoad {16     [super viewDidLoad];17     // Do any additional setup after loading the view, typically from a nib.18 }19 20 21 // 登入按鈕22 - (IBAction)loginClickButton:(id)sender {23     24     if (self.UserNameFiledText.text.length == 0 || self.passwordFieldText.text.length == 0) {25         NSLog(@"使用者名稱密碼不可為空");26     }27     28     // 環信登入的方法29     EMError *error = [[EMClient sharedClient] loginWithUsername:self.UserNameFiledText.text password:self.passwordFieldText.text];30     NSLog(@"%@", error);31     if (!error) {32         NSLog(@"登入成功");33         // 返回會話列表34         35         [self dismissViewControllerAnimated:YES completion:nil];36     }37     38 }
自動登入

自動登入:即首次登入成功後,不需要再次調用登入方法,在下次 APP 啟動時,SDK 會自動為您登入。並且如果您自動登入失敗,也可以讀取到之前的會話資訊。

SDK 中自動登入屬性預設是關閉的,需要您在登入成功後設定,以便您在下次 APP 啟動時不需要再次調用環信登入,並且能在沒有網的情況下得到會話列表。

1 EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];2 if (!error)3 {4    [[EMClient sharedClient].options setIsAutoLogin:YES];5 }

 

iOS SDK 介紹及匯入

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.