<b>閑來無事牵敷,試了一發(fā)環(huán)信胡岔,目前主要寫了登錄、注冊枷餐、好友(添加靶瘸、刪除、獲取)及好友單聊毛肋。本文章主要簡單的講解下環(huán)信單聊集成怨咪。后續(xù)有時間再做其他功能。</b>
先看效果吧润匙,這gif是我錄制的模擬器诗眨,手機的界面沒有錄制≡谢洌【watering222】是我手機登錄的用戶在配合演示匠楚。
下面簡單講解下步驟(我按照我自己的集成步驟講解,僅僅做參考):
1卫病、環(huán)信官網(wǎng)注冊應(yīng)用獲取AppKey油啤。
2典徘、環(huán)信官網(wǎng)下載SDK蟀苛,我下載的是最新的SDK。
3逮诲、配置工程帜平,這一步有些地方需要注意(導(dǎo)入依賴庫我就不提了,對著導(dǎo)入就可以了)梅鹦。
- 3.1 創(chuàng)建.pch文件,方便使用裆甩。在Build Phases 中配置好.pch。別到時候找不到.pch齐唆。
- 3.2 把HyphenateFullSDK(以包含語音SDK為例)拉到工程中嗤栓,記得勾上copy,然后就是在之前創(chuàng)建好的pch文件中添加** #import "EMSDK.h"**,此時應(yīng)該會報錯(如圖1.0),解決方案(如圖2.0)茉帅。在AppDelegate.m中注冊(※注意:登錄注冊也得完成叨叙,很簡單,看看就知道堪澎,我就不寫了※)擂错。如下代碼:
AppDelegate.m中注冊AppKey
//1、AppKey:注冊的AppKey
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
EMOptions *options = [EMOptions optionsWithAppkey:AppKey];
options.apnsCertName = nil;// 沒有證書暫時設(shè)置為nil
[[EMClient sharedClient] initializeSDKWithOptions:options];
}
- 3.3 從下載的SDK文件夾找到EaseUI(如圖3.0)樱蛤,然后拉到工程中钮呀,此時編譯會報很多錯,別急昨凡,現(xiàn)在先在pch文件中添加** #import "EaseUI.h"爽醋,此時你會發(fā)現(xiàn)------還是沒卵用,哈哈~~~??。然后就解決唄便脊,在工程左側(cè)找到它(如圖4.0)內(nèi)部代碼(如圖5.0)子房,把紅色圈里面的
#ifdef __OBJC__
和#endif
拷貝到之前自己創(chuàng)建的pch文件中(如下代碼片段),這個很關(guān)鍵的**
3.0.png
// 就是這個
#ifdef __OBJC__
#ifndef PrefixHeader_pch
#define PrefixHeader_pch
#import "EMSDK.h"
#import "EaseUI.h"
#ifdef DEBUG
# define DLog(fmt, ...) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__);
#else
# define DLog(...)
#endif
#endif /* PrefixHeader_pch */
// 和這個
#endif
4就轧、此時基本配置完成了证杭,然后就是調(diào)用了。在你需要的控制器添加#import "EaseMessageViewController.h"使用
- (IBAction)push:(id)sender {
EaseMessageViewController *ease = [[EaseMessageViewController alloc] initWithConversationChatter:@"watering6" conversationType:EMConversationTypeChat];
[self.navigationController pushViewController:ease animated:YES];
}
-
4.1此時就可以發(fā)送消息了妒御,但是當(dāng)你點擊表情按鈕的時候解愤,會程序崩潰掉(如圖6.0)。
6.0.png
既然這樣就換一種方法解決它乎莉,<解決方案>:在下載的SDK中按順序(1)ChatDemo-UI3.0 -->(2)ChatDemo-UI3.0-->(3)Class-->(4)Chat找到Chat文件夾后送讲,把Chat文件夾拉到工程中。替換掉之前的方法惋啃,如下(為什么要換成ChatViewController來解決問題哼鬓,是因為基本表情的處理都在此類中,而現(xiàn)在只是集成單聊):
- (IBAction)push:(id)sender {
ChatViewController *ease = [[ChatViewController alloc] initWithConversationChatter:@"watering6" conversationType:EMConversationTypeChat];
[self.navigationController pushViewController:ease animated:YES];
// EaseMessageViewController *ease = [[EaseMessageViewController alloc] initWithConversationChatter:@"watering6" conversationType:EMConversationTypeChat];
// [self.navigationController pushViewController:ease animated:YES];
}
此時編譯你會發(fā)現(xiàn)在剛剛拉進來的Chat中的ChatViewController.m中報好多錯边灭。<解決方案>:把ChatViewController.m中所有的報錯全注釋掉就好了异希。哈哈,這好像不是什么解決方案绒瘦,那些報錯的代碼称簿,是因為寫的其它功能,反正我們只需要單聊惰帽,把其它先注釋憨降,如果你以后需要其它功能你再研究一發(fā)。反正現(xiàn)在全注釋掉就好了该酗。此時基本完成了授药,是基本完成哦,后面還有問題要解決的。
4.2跑起來吧騷年悔叽,看看還有什么問題航邢,當(dāng)你在點點點時,那么問題就來了骄蝇,你會發(fā)現(xiàn)兔基斯的表情包沒有對吧膳殷?<解決方案>:還是找到下載的SDK(1)ChatDemo-UI3.0 -->(2)ChatDemo-UI3.0-->(3)Resources-->(4)emotion把emotion文件夾拉到你的工程中。然后編譯沒問題九火,跑起來兔基斯就會出來了赚窃。
4.3基本該有的都有了,然后試試其他功能岔激,圖片勒极,拍照,錄音虑鼎,定位辱匿。TMD程序又閃退了。我當(dāng)時一直不明白是為什么炫彩,查了好久匾七。突然我想起來我特么升級xcode8了!江兢!這應(yīng)該是權(quán)限問題昨忆,當(dāng)時我真的好氣,這都能忘杉允。然后在info.plist中添加了對應(yīng)的權(quán)限邑贴。然后跑起來,試了一發(fā)叔磷。搞定拢驾!權(quán)限的添加可以自行百度或者到我另外一篇文章查看。
總結(jié)
以上集成步驟雖然都很簡單改基,但是有些問題一時半會沒想到繁疤,往往要浪費好多時間去解決,有可能一個細節(jié)都能讓你崩潰寥裂,就好像我在xcode8權(quán)限的問題上嵌洼。所以這篇文章也是獻給為工作勞累的同行們。本文章如有錯誤歡迎留言指出封恰。如有更好方法也希望各位大神分享。謝謝褐啡!