環(huán)信3.0ios客戶端的集成(三)

版本記錄

版本號(hào) 時(shí)間
V1.0 2017.06.08

前言

很多app種都集成環(huán)信做第三方信息通訊工具,這里我們就看一下環(huán)信的主要功能和集成方法。先給出環(huán)信3.0的地址。
感興趣的可以參考:
1. 環(huán)信ios客戶端的集成(一)
2. 環(huán)信ios客戶端的集成(二)
這一篇主要說(shuō)一下環(huán)信的基礎(chǔ)功能。

一、初始化 SDK

第 1 步:引入相關(guān)頭文件 #import <HyphenateLite/EMSDK.h>。
第 2 步:在工程的 AppDelegate 中的以下方法中,調(diào)用 SDK 對(duì)應(yīng)方法。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //AppKey:注冊(cè)的AppKey,詳細(xì)見(jiàn)下面注釋。
    //apnsCertName:推送證書(shū)名(不需要加后綴),詳細(xì)見(jiàn)下面注釋。
    EMOptions *options = [EMOptions optionsWithAppkey:@"douser#istore"];
    options.apnsCertName = @"istore_dev";
    [[EMClient sharedClient] initializeSDKWithOptions:options];

    return YES;
}

// APP進(jìn)入后臺(tái)
- (void)applicationDidEnterBackground:(UIApplication *)application
{
    [[EMClient sharedClient] applicationDidEnterBackground:application];
}

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

調(diào)用的 SDK 接口參數(shù)解釋如下:


二、注冊(cè)

注冊(cè)模式分兩種,開(kāi)放注冊(cè)和授權(quán)注冊(cè)。

  • 只有開(kāi)放注冊(cè)時(shí),才可以客戶端注冊(cè)。開(kāi)放注冊(cè)是為了測(cè)試使用,正式環(huán)境中不推薦使用該方式注冊(cè)環(huán)信賬號(hào)。
  • 授權(quán)注冊(cè)的流程應(yīng)該是您服務(wù)器通過(guò)環(huán)信提供的 REST API 注冊(cè),之后保存到您的服務(wù)器或返回給客戶端。
EMError *error = [[EMClient sharedClient] registerWithUsername:@"8001" password:@"111111"];
if (error==nil) {
    NSLog(@"注冊(cè)成功");
}

三、登錄

登錄:調(diào)用 SDK 的登錄接口進(jìn)行的操作。

EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
if (!error) {
    NSLog(@"登錄成功");
}

四、自動(dòng)登錄

自動(dòng)登錄:即首次登錄成功后,不需要再次調(diào)用登錄方法,在下次 APP 啟動(dòng)時(shí),SDK 會(huì)自動(dòng)為您登錄。并且如果您自動(dòng)登錄失敗,也可以讀取到之前的會(huì)話信息。

SDK 中自動(dòng)登錄屬性默認(rèn)是關(guān)閉的,需要您在登錄成功后設(shè)置,以便您在下次 APP 啟動(dòng)時(shí)不需要再次調(diào)用環(huán)信登錄,并且能在沒(méi)有網(wǎng)的情況下得到會(huì)話列表。

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

自動(dòng)登錄在以下幾種情況下會(huì)被取消:

  • 用戶調(diào)用了 SDK 的登出動(dòng)作;
  • 用戶在別的設(shè)備上更改了密碼,導(dǎo)致此設(shè)備上自動(dòng)登錄失敗;
  • 用戶的賬號(hào)被從服務(wù)器端刪除;
  • 用戶從另一個(gè)設(shè)備登錄,把當(dāng)前設(shè)備上登錄的用戶踢出。

所以,在您調(diào)用登錄方法前,應(yīng)該先判斷是否設(shè)置了自動(dòng)登錄,如果設(shè)置了,則不需要您再調(diào)用。

BOOL isAutoLogin = [EMClient sharedClient].options.isAutoLogin;
if (!isAutoLogin) {
    EMError *error = [[EMClient sharedClient] loginWithUsername:@"8001" password:@"111111"];
}

SDK 中,如果發(fā)生自動(dòng)登錄,會(huì)有以下回調(diào):

/*!
 *  自動(dòng)登錄返回結(jié)果
 *
 *  @param error 錯(cuò)誤信息
 */
- (void)autoLoginDidCompleteWithError:(EMError *)error

//添加回調(diào)監(jiān)聽(tīng)代理: 
[[EMClient sharedClient] addDelegate:self delegateQueue:nil];


五、重連

當(dāng)?shù)艟€時(shí),iOS SDK 會(huì)自動(dòng)重連,只需要監(jiān)聽(tīng)重連相關(guān)的回調(diào),無(wú)需進(jìn)行任何操作。

/*!
 *  SDK連接服務(wù)器的狀態(tài)變化時(shí)會(huì)接收到該回調(diào)
 *
 *  有以下幾種情況,會(huì)引起該方法的調(diào)用:
 *  1. 登錄成功后,手機(jī)無(wú)法上網(wǎng)時(shí),會(huì)調(diào)用該回調(diào)
 *  2. 登錄成功后,網(wǎng)絡(luò)狀態(tài)變化時(shí),會(huì)調(diào)用該回調(diào)
 *
 *  @param aConnectionState 當(dāng)前狀態(tài)
 */
- (void)connectionStateDidChange:(EMConnectionState)aConnectionState;


六、退出登錄

退出登錄分兩種類型:主動(dòng)退出登錄和被動(dòng)退出登錄。

  • 主動(dòng)退出登錄:調(diào)用 SDK 的退出接口;
  • 被動(dòng)退出登錄:
    • 正在登錄的賬號(hào)在另一臺(tái)設(shè)備上登錄;
    • 正在登錄的賬號(hào)被從服務(wù)器端刪除。

logout:YES:是否解除 device token 的綁定,在被動(dòng)退出時(shí) SDK 內(nèi)部處理,不需要調(diào)用退出方法。

EMError *error = [[EMClient sharedClient] logout:YES];
if (!error) {
     NSLog(@"退出成功");
}

七、被動(dòng)退出登錄

使用回調(diào)方法監(jiān)聽(tīng)被動(dòng)退出登錄。

/*!
 *  當(dāng)前登錄賬號(hào)在其它設(shè)備登錄時(shí)會(huì)接收到該回調(diào)
 */
- (void)userAccountDidLoginFromOtherDevice;

/*!
 *  當(dāng)前登錄賬號(hào)已經(jīng)被從服務(wù)器端刪除時(shí)會(huì)收到該回調(diào)
 */
- (void)userAccountDidRemoveFromServer;

后記

希望對(duì)大家有所幫助,未完,待續(xù)~~~

美景
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 227,797評(píng)論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,179評(píng)論 3 414
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人,你說(shuō)我怎么就攤上這事。” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 175,628評(píng)論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我,道長(zhǎng),這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 62,642評(píng)論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 71,444評(píng)論 6 405
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 54,948評(píng)論 1 321
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼。 笑死,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,040評(píng)論 3 440
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 42,185評(píng)論 0 287
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,717評(píng)論 1 333
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 40,602評(píng)論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 42,794評(píng)論 1 369
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,316評(píng)論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 44,045評(píng)論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 34,418評(píng)論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 35,671評(píng)論 1 281
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 51,414評(píng)論 3 390
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 47,750評(píng)論 2 370

推薦閱讀更多精彩內(nèi)容