iOS:即時通訊之<掌握篇 環信>


什么是環信?

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大致變動介紹:


 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM