iOS 環(huán)信3.2集成單聊教程

第一次集成環(huán)信SDK應(yīng)該是在去年吧,那個(gè)時(shí)候還是2.0的版本焙蹭,沒想到后面做的幾個(gè)APP都用到了環(huán)信的及時(shí)聊天晒杈,用過2.0、3.0孔厉、3.1的拯钻,現(xiàn)在到了3.2的版本了。這篇博客水平并不是很深撰豺,只是作為剛接觸環(huán)信的小伙伴一個(gè)參考的文章而已粪般,讓你們少走點(diǎn)彎路,但是該跳的坑還是需要自己親自去跳污桦。

前言

1亩歹、本教程對(duì)應(yīng)環(huán)信即時(shí)聊天?iOS?SDK V3.2.0 (2016-10-15)

2、請(qǐng)自行注冊(cè)好環(huán)信APP_ID和APP_KEY

3凡橱、請(qǐng)自行下載好環(huán)信即時(shí)聊天SDK對(duì)應(yīng)的版本(iOS SDK V3.2.0)

一小作、集成環(huán)信SDK

1、導(dǎo)入SDK

下載SDK到本地稼钩,進(jìn)行解壓顾稀,包含以下幾個(gè)文件。

如果你的項(xiàng)目中需要用到語音電話和語音視頻請(qǐng)把HyphenateFullSDK拖入你的工程变抽;

如果你的項(xiàng)目中只不需要語音電話和語音視頻請(qǐng)把HyphenateSDK拖入你的工程础拨;

這個(gè)兩個(gè)只需要拖入一個(gè),區(qū)別就是一個(gè)包含語音電話绍载、視頻诡宗,一個(gè)不不含,其他的都是一樣的击儡。

2塔沃、添加對(duì)應(yīng)的依賴庫

(1) 在 Build Phases -> Link Binary With Libraries 添加以下依賴庫:

CoreMedia.framework

AudioToolbox.framework

AVFoundation.framework

MobileCoreServices.framework

ImageIO.framework

libc++.tbd

libz.tbd

libstdc++.6.0.9.tbd

libsqlite3.tbd

libiconv.tbd

如果你選擇的是不包含語音電話、視頻的SDK阳谍,最后一個(gè)依賴庫(libiconv.tbd)不需添加蛀柴。

(2) SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中設(shè)置 NO矫夯。

3鸽疾、登錄環(huán)信

在AppDelegate.m 中添加歡喜初始化和登錄的代碼,如果編譯成功,則說明你導(dǎo)入SDK成功了膏萧。

#define EaseMob_Appkey? ? @"1101#testnickname"? //環(huán)信AppKey#import "AppDelegate.h"#import "EMSDK.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {? ? //AppKey:注冊(cè)的AppKey,詳細(xì)見下面注釋勇蝙。? ? //apnsCertName:推送證書名(不需要加后綴)豺鼻,詳細(xì)見下面注釋综液。? ? EMOptions *options =[EMOptions optionsWithAppkey:EaseMob_Appkey];? ? options.apnsCertName = @"";[[EMClient sharedClient] initializeSDKWithOptions:options];? ? EMError *error =[[EMClient sharedClient] loginWithUsername:@"yuancan001" password:@"123456"];? ? if (!error) {? ? ? ? NSLog(@"登錄成功");? ? }? ? return YES;}

提醒:記得在plist文件中設(shè)置https請(qǐng)求喔

4、添加EaseUI文件 要想實(shí)現(xiàn)環(huán)信的及時(shí)聊天儒飒,只加入SDK是不夠的谬莹,還需要添加其他的一些相關(guān)的文件∽耍回到我們之前下載環(huán)信SDK的文件中附帽,有一個(gè)EaseUI的文件,把這個(gè)文件加入你的工程中圣猎。

這個(gè)文件夾中包含了一些與聊天相關(guān)的類士葫,比如說聊天的界面、聊天的鍵盤等送悔,總之是為了幫助開發(fā)者快速實(shí)現(xiàn)聊天功能慢显。 編譯一下,結(jié)果編譯失敗欠啤,因?yàn)檫€需要做一步操作荚藻,添加pch文件的路徑。

EaseUI目錄下有一個(gè)pch文件洁段,你把它的路徑添加到Prefix Header中应狱。怎么添加呢?最簡單的辦法祠丝,就是先選擇EaseUI-Prefix.pch文件疾呻,然后按住它,把它拖過去写半。不過這個(gè)要看人品岸蜗,人品好一次就可以拖成功,如果沒有拖成功叠蝇,就多試幾次璃岳。要是人品太差,就只能手動(dòng)添加了

$(SRCROOT)/EaseMob3.2/EaseMob/EaseUI/EaseUI-Prefix.pch

$(SRCROOT):這是一個(gè)宏悔捶,代表你這個(gè)項(xiàng)目文件的相對(duì)路徑铃慷;

EaseMob3.2:這個(gè)是我的工程名,需要替換成你自己的工程名蜕该;

EaseMob/EaseUI/EaseUI-Prefix.pch:這個(gè)是pch文件在工程中的相對(duì)路徑犁柜,需要替換成你自己對(duì)應(yīng)的.

再編譯一下,就可以成功了堂淡。

二馋缅、實(shí)現(xiàn)單聊

集成環(huán)信SDK坛怪,我們已經(jīng)完成了第一步工作,接著我們來實(shí)現(xiàn)一下聊天的功能股囊。

1、添加與聊天相關(guān)的文件

環(huán)信官方提供的Demo中集成了所有的功能更啄,對(duì)于開發(fā)者來說既是一件好事也是一件壞事稚疹。之所以說是好事是因?yàn)樗泄δ芏加校哉f壞事是因?yàn)楣δ芴嗉牢瘢茧s糅在一起内狗,對(duì)于新手來說卻是感覺無從下手。下面义锥,就隨我一起慢慢來深入了解環(huán)信柳沙。

實(shí)現(xiàn)單聊還需要添加一些文件,這些文件我們可以從官方的Demo中拷貝過來拌倍。我們需要添加的文件叫做 Chat赂鲤,Chat目錄下包含兩個(gè)文件夾。ChatList里面的東西是與回話列表相關(guān)的柱恤,ChatView里面的東西是與聊天界面相關(guān)的 数初, 把Chat整個(gè)文件夾都拖入工程中。編譯之后梗顺,你會(huì)發(fā)現(xiàn)會(huì)出現(xiàn)很多報(bào)錯(cuò)的泡孩,不要懷疑你自己,這是正常的寺谤。因?yàn)檫@些文件是從環(huán)信官方Demo中拷貝過來仑鸥,里面用了很多其他的文件,但是我們不需要那些文件变屁,沒有添加到我們的工程中眼俊,所以會(huì)報(bào)錯(cuò)。其實(shí)敞贡,這幾個(gè)步驟很關(guān)鍵泵琳,但是官方文檔卻沒有說明,估計(jì)把新手坑死了誊役,幸虧有小編來拯救你們获列,哈哈。這里好心的小編提供一個(gè)已經(jīng)處理好的下載Chat文件蛔垢,下載可以直接使用击孩。不然,你就需要自己手動(dòng)去注釋一些報(bào)錯(cuò)的地方鹏漆,知道編譯成功巩梢。

2创泄、修改pch文件

在我們之前用的那個(gè)EaseUI-Prefix.pch中添加一些頭文件:

#ifdef __OBJC__

#import

#import

//#import "ChatDemoUIDefine.h"

//#import "EMAlertView.h"

//#import "TTGlobalUICommon.h"

#import "EMSDKFull.h"

#import "EaseUI.h"

#endif

3、測試單聊

(1) 在AppDelegate.m 中創(chuàng)建一個(gè)UINavigationController :

#define EaseMob_Appkey? ? @"1101#testnickname"? //環(huán)信AppKey#import "AppDelegate.h"#import "EMSDK.h"#import "ViewController.h"@interface AppDelegate ()@end@implementation AppDelegate- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {? ? //AppKey:注冊(cè)的AppKey括蝠,詳細(xì)見下面注釋鞠抑。? ? //apnsCertName:推送證書名(不需要加后綴),詳細(xì)見下面注釋忌警。? ? EMOptions *options =[EMOptions optionsWithAppkey:EaseMob_Appkey];? ? options.apnsCertName = @"";[[EMClient sharedClient] initializeSDKWithOptions:options];? ? EMError *error =[[EMClient sharedClient] loginWithUsername:@"yuancan001" password:@"123456"];? ? if (!error) {? ? ? ? NSLog(@"登錄成功");? ? }? ? ViewController *vc =[[ViewController alloc] init];? ? UINavigationController *navigation =[[UINavigationController alloc] initWithRootViewController:vc];? ? self.window.rootViewController = navigation;? ? self.window.backgroundColor =[UIColor whiteColor];? ? return YES;}

OK搁拙,完了,到點(diǎn)了吃中飯去了法绵。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末箕速,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子朋譬,更是在濱河造成了極大的恐慌盐茎,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件徙赢,死亡現(xiàn)場離奇詭異字柠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)犀忱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門募谎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人阴汇,你說我怎么就攤上這事数冬。” “怎么了搀庶?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵拐纱,是天一觀的道長。 經(jīng)常有香客問我哥倔,道長秸架,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任咆蒿,我火速辦了婚禮东抹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘沃测。我一直安慰自己缭黔,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布蒂破。 她就那樣靜靜地躺著馏谨,像睡著了一般。 火紅的嫁衣襯著肌膚如雪附迷。 梳的紋絲不亂的頭發(fā)上惧互,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天哎媚,我揣著相機(jī)與錄音,去河邊找鬼喊儡。 笑死拨与,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的艾猜。 我是一名探鬼主播截珍,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼箩朴!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起秋度,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤炸庞,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后荚斯,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埠居,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年事期,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了滥壕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡兽泣,死狀恐怖绎橘,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情唠倦,我是刑警寧澤称鳞,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站稠鼻,受9級(jí)特大地震影響冈止,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜候齿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一熙暴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧慌盯,春花似錦周霉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孕讳,卻和暖如春匠楚,著一層夾襖步出監(jiān)牢的瞬間巍膘,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來泰國打工芋簿, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留峡懈,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓与斤,卻偏偏與公主長得像肪康,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子撩穿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

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

  • 一磷支、準(zhǔn)備工作 1、注冊(cè)環(huán)信帳號(hào)注冊(cè)一個(gè)環(huán)信賬號(hào)之后食寡,我們用注冊(cè)的帳號(hào)登陸雾狈。然后創(chuàng)建一個(gè)應(yīng)用,會(huì)得到一個(gè)對(duì)應(yīng)的App...
    niceSYT閱讀 413評(píng)論 1 2
  • 一抵皱、準(zhǔn)備工作 1善榛、注冊(cè)環(huán)信帳號(hào) 注冊(cè)一個(gè)環(huán)信賬號(hào)之后,我們用注冊(cè)的帳號(hào)登陸呻畸。然后創(chuàng)建一個(gè)應(yīng)用移盆,會(huì)得到一個(gè)對(duì)應(yīng)的Ap...
    樊二哈閱讀 1,293評(píng)論 1 10
  • 閑來無事,試了一發(fā)環(huán)信伤为,目前主要寫了登錄咒循、注冊(cè)、好友(添加绞愚、刪除剑鞍、獲取)及好友單聊。本文章主要簡單的講解下環(huán)信單聊...
    乂濫好人閱讀 871評(píng)論 4 6
  • 版權(quán)聲明:本文為博主原創(chuàng)文章爽醋,未經(jīng)博主允許不得轉(zhuǎn)載蚁署。 前言 公司最近要求做即時(shí)通訊, 直接用了三方環(huán)信了,今天和大...
    Heaven7th閱讀 9,635評(píng)論 24 30
  • 領(lǐng)導(dǎo)說一天內(nèi)要集成IM功能光戈,我頓時(shí)被嚇尿了~~ 說明 本項(xiàng)目是基于官方ChatDemo-UI3.0 (官方Demo...
    imGeek閱讀 4,756評(píng)論 13 62