什么是環信?
1.環信是一個第三平台,提供即時通信(IM–Instant Messaging )的服務
2.環信是在XMPP的基礎上進行二次開發
3.環信在網絡上傳輸的數據也是XML
4.使用環信,不用自己搭建服務器,節約成本
5.環信日活30萬以下,永遠免費
為什么要選擇環信?
數據來源艾瑞:點擊跳轉
數據來源易觀:點擊跳轉


集成環信前提准備:
1.注冊成為環信開發者 點擊進入環信

2.在開發者后台創建APP獲取Key

3.下載官方SDK DEMO 點擊查看

集成SDK步驟:
1.導入SDK

2. 設置工程屬性

2.2 SDK依賴庫有

注意:(如果使用的是xcode7,后綴為tbd) <官網有提示>
2.3 如果項目中使用-ObjC有沖突,可以添加-force_load來解決


2.4 SDK不支持bitcode,向Build Settings → Linking → Enable Bitcode中設置NO。
編譯工程
以上步驟進行完后,編譯工程,如果沒有報錯,恭喜你,集成sdk成功,可以進行下一步了。
SDK同步/異步方法區分:
SDK中,大部分與網絡有關的操作,提供的是同步方法(注:同步方法會阻塞主線程,需要用戶自己創建異步線程執行;帶有async的方法為異步方法)
初始化SDK
1.引入相關頭文件 #import “EMSDK.h”
2.在工程的AppDelegate中的以下方法中,調用SDK對應方法:

調用的SDK接口參數解釋如下:
1.AppKey: 區別app的標識,開發者注冊及管理后台
2.apnsCertName: iOS中推送證書名稱。制作與上傳推送證書
3.環信為im部分提供了apns推送功能,如果您要使用,請跳轉到apns離線推送
注冊:
1.注冊模式分兩種,開放注冊和授權注冊。只有開放注冊時,才可以客戶端注冊。
2.開放注冊是為了測試使用,正式環境中不推薦使用該方式注冊環信賬號, 授權注冊的流程應該是您服務器通過環信提供的rest api注冊,之后保存到您的服務器或返回給客戶端。

登陸:
登錄:調用SDK的登錄接口進行的操作;

自動登錄:
自動登錄:即首次登錄成功后,不需要再次調用登錄方法,在下次app啟動時,SDK會自動為您登錄。並且如果您自動登錄失敗,也可以讀取到之前的會話信息。配置是否進行自動登錄SDK中自動登錄屬性默認是關閉的,需要您在登錄成功后設置,以便您在下次app啟動時不需要再次調用環信登錄,並且能在沒有網的情況下得到會話列表。

自動登錄在以下幾種情況下會被取消
1.用戶調用了SDK的登出動作;
2.用戶在別的設備上更改了密碼, 導致此設備上自動登陸失敗;
3.用戶的賬號被從服務器端刪除;
4.用戶從另一個設備登錄,把當前設備上登陸的用戶踢出.
所以,在您調用登錄方法前,應該先判斷是否設置了自動登錄,如果設置了,則不需要您再調用

SDK中,如果發生自動登錄,會有以下回調

重連:
當掉線時,IOS SDK會自動重連,只需要監聽重連相關的回調,無需進行任何操作。

退出登陸:
退出登錄分兩種類型:主動退出登錄和被動退出登錄。
主動退出登錄:調用SDK的退出接口;
被動退出登錄: 1、 正在登陸的賬號在另一台設備上登陸; 2、 正在登陸的賬號被從服務器端刪除。
logout:YES:是否解除device token的綁定,在被動退出時SDK內部處理,不需要調用退出方法

被動退出登錄:
回調方法監聽:

還有很多很多功能,而且官網 寫的非常非常清楚!
好友管理
注:環信不是好友也可以聊天,不推薦使用環信的好友機制。如果你有自己的服務器或好友關系,請自己維護好友關系。
獲取好友列表,環信提供了兩種方法。
1. 從服務器獲取所有的好友

2. 從數據庫獲取所有的好友

好友申請
發送加好友申請
環信iOS SDK提供了添加好友的方法
如果您已經發過,並且對方沒有處理,您將不能再次發送

實時通話管理
客戶端
1.發起實時通話

2.被叫方同意實時通話

3.結束實時通話

4.實時通話實例

等等等... 點擊查看詳細
EaseUI使用指南
EaseUI是一個UI庫,封裝了IM功能常用的控件、fragment等等,旨在幫助開發者快速集成環信sdkeaseui及demo的github下載地址為:
https://github.com/easemob/easeui;
https://github.com/easemob/sdkdemoapp3.0_android,3.0的代碼需要切換到sdk3.0分支
注意:因為這是一個ui庫,后續很可能還會繼續改動,新舊版本在api的兼容上不會像im sdk那樣絕對的兼容。(官網有提示)
代碼導入
easeui庫的代碼是開源的,下載的sdk壓縮包里面已經包含此庫,解壓后路徑為/examples/easeui
Eclipse中導入:
1.先把easeui項目導入到eclipse中
2.在自己的項目中把easeui作為一個library引入。右鍵你的項目→Android→點擊右下角的Add按鈕→選中EaseUI→OK→OK
Android studio中導入:打開你的AS項目→File→New→Import Module→選擇或輸入easeui庫路徑→Next→Next→Finish
導入完可能會有如下錯誤:

找到相應報錯的地方把swipeRefreshLayout.setColorSchemeResources改成swipeRefreshLayout.setColorScheme,ViewCompat.getX改成new ViewCompat().getX,然后重新build即可;或者把v4包的版本號加大,譬如compile 'com.android.support:support-v4:23.1.1'。
主要fragment
1.EaseConversationList - 聊天頁面,最主要的fragment
2.EaseContactListFragment - 聯系人頁面
3.EaseConversationListFragment - 會話列表頁面

主要控件
1.EaseTitleBar - 標題欄
2.EaseChatMessageList - 聊天消息列表控件
3.EaseConversationList - 會話列表控件
4.EaseContactList - 聯系人列表頁面
5.EaseChatInputMenu - 聊天輸入菜單欄
其他子控件,后文會做詳細介紹
這里對聊天頁面幾個控件做簡單圖示:

類似這些功能:



這里都有介紹,只不過覺得這么好的東西放在官網沒人看,太可惜了... 點擊查看詳細
API大致變動介紹:

都是官網的東西,與君共勉!