iOS 環(huán)信集成通過服務(wù)器實(shí)現(xiàn)頭像和昵稱的顯示

最近項(xiàng)目結(jié)束了很無聊嗦篱,想起一直看別人的技術(shù)貼自己還不曾寫過什么東西,就打算寫篇文章幌缝。思前想后覺得本人沒啥技術(shù)(誒灸促、、涵卵、這才是真正的碼農(nóng)Y(^_^)Y)但是又想寫點(diǎn)什么浴栽。所以就把集成環(huán)信遇到的一些問題寫出來和大家分享。

下面開始 ?思路有點(diǎn)混亂(畢竟是菜雞轿偎、典鸡、、)大家見諒


1.聊天界面中不想要紅包坏晦、分享位置椿每、視頻等功能怎辦伊者?

在EaseChatBarMoreView.m中你就可以看到相關(guān)的代碼(命名很直白相信小伙伴們都能看的明白)

2.監(jiān)聽好友申請(qǐng)

EMContactManagerDelegate這個(gè)代理方法中有各種監(jiān)聽的方法即看即用(別忘了遵守協(xié)議0哦)。最好的跟控制器寫间护。

在獲取當(dāng)前有幾個(gè)好友請(qǐng)求通知的時(shí)候可能或出現(xiàn)問題如下方法即可()

- (void)didReceiveFriendInvitationFromUsername:(NSString *)aUsername

message:(NSString *)aMessage{

NSMutableDictionary *dic = [NSMutableDictionary dictionaryWithDictionary:@{@"title":aUsername, @"username":aUsername, @"applyMessage":aMessage, @"applyStyle":[NSNumber numberWithInteger:ApplyStyleFriend]}];

[[ApplyViewController shareController] addNewApply:dic];

[self reloadApplyView];

}

3亦渗、軟件集成環(huán)信之后退到后臺(tái)三分鐘左右被殺死

解決很簡(jiǎn)單就是在軟件進(jìn)入后臺(tái)、進(jìn)入前臺(tái)中不要操作環(huán)信的方法汁尺。目前我去掉沒什么影響

[[EMClient sharedClient] applicationDidEnterBackground:application];

當(dāng)時(shí)我就是按照環(huán)信文檔寫的法精,這個(gè)比較坑。

4痴突、統(tǒng)計(jì)消息未讀數(shù)

統(tǒng)計(jì)消息未讀數(shù)

for (EMConversation *conversation in conversations) {

unreadCount += conversation.unreadMessagesCount;

}

這個(gè)要和實(shí)時(shí)監(jiān)聽收到消息的監(jiān)聽方法一起用 是在EMChatManagerDelegate代理方法中

- (void)didReceiveMessages:(NSArray *)aMessages

{}

5搂蜓、環(huán)信的推送

環(huán)信的推送分為倆種,本地推送辽装、離線推送帮碰。集成環(huán)信后,當(dāng)app推到后臺(tái)沒被殺死的時(shí)候拾积,接收消息會(huì)走本地推送殉挽,很多開發(fā)者誤以為這時(shí)候走APNs,其實(shí)這時(shí)候app長(zhǎng)連接未斷開拓巧,調(diào)用蘋果的本地通知即可斯碌。

本地推送方法傳送門

環(huán)信接收消息本地推送的實(shí)現(xiàn) - EaseMob.沈沖 - 博客頻道 - CSDN.NET

APNs參考開發(fā)文檔即可,

做好推送了你會(huì)發(fā)現(xiàn)收到的推送消息是”您有一條新消息“而不是我們想要顯示的消息內(nèi)容肛度,設(shè)置如下即可

EMPushOptions *pushOptions = [[EMClient sharedClient] pushOptions];

pushOptions.displayStyle = EMPushDisplayStyleMessageSummary;

[[EMClient sharedClient] updatePushOptionsToServer];

[[EMClient sharedClient] initializeSDKWithOptions:options];

6傻唾、利用環(huán)信做單點(diǎn)登錄

調(diào)用如下方法即可

/*!

*? \~chinese

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

*

*? \~english

*? Current login account to log in on other devices will receive the callback

*/

- (void)didLoginFromOtherDevice;

7、設(shè)置群組會(huì)話名稱

在創(chuàng)建群組后再會(huì)話列表看到的可能是此群組的ID并不是群組的名稱承耿。

解決辦法是在EaseConversationListViewController.m文件中的tableViewDidTriggerHeaderRefresh方法中對(duì)model進(jìn)行判斷賦值代碼如下

//設(shè)置群組的會(huì)話名稱

if (model.conversation.type == EMConversationTypeGroupChat) {

NSArray *groupArray = [[EMClient sharedClient].groupManager getAllGroups];

for (EMGroup *group in groupArray) {

if ([group.groupId isEqualToString:converstion.conversationId]) {

model.title = group.subject;

}

}

}

8冠骄、設(shè)置用戶的頭像、昵稱

環(huán)信并未保存用戶的頭像加袋、昵稱所以這里要我們自己處理凛辣,相信支持各位看官看下來的動(dòng)力(了解如何設(shè)置用戶頭像、昵稱)就是這個(gè)吧锁荔。

環(huán)信為我們提供了倆種解決方案并詳細(xì)的說明了各自的優(yōu)缺點(diǎn)。這里我使用的是方法一:從APP服務(wù)器獲取昵稱和頭像

昵稱和頭像的顯示與更新 [環(huán)信開發(fā)文檔]

使用這種辦法的必要條件是自己用戶體系的某個(gè)字段(可以標(biāo)識(shí)用戶的唯一性)必須與環(huán)信的用戶id保持一致蝙砌。這樣我們才能拿到該用戶存在在我們服務(wù)器上的昵稱阳堕、頭像及各種信息。

為了節(jié)省用戶的流量我們應(yīng)該做一個(gè)本地?cái)?shù)據(jù)庫(kù)择克,獲取環(huán)信用戶id現(xiàn)在本地?cái)?shù)據(jù)庫(kù)查詢恬总,有即使用、無即下載保存本地?cái)?shù)據(jù)庫(kù)在使用肚邢。


說了辣么多廢話壹堰,下面我們來點(diǎn)實(shí)際的

a拭卿、設(shè)置會(huì)話列表單聊的頭像、名稱

與設(shè)置群組聊天的會(huì)話名稱一樣在EaseConversationListViewController.m文件中的tableViewDidTriggerHeaderRefresh方法中對(duì)model進(jìn)行判斷賦值代碼如下

if (model.conversation.type == EMConversationTypeChat) {

//數(shù)據(jù)庫(kù)查詢數(shù)據(jù)賦值

[[BGFMDB intance]queryWithTableName:TableName keys:nil where:@[@"loginName",@"=",String(converstion.conversationId)] complete:^(NSArray *array) {

model.title = array[0][@"nickName"];

model.avatarURLPath =[NSString stringWithFormat:@"%@%@",PhotoUrl,array[0][@"iconUrl"]];

}];

}

b贱纠、設(shè)置聊天界面(單聊峻厚、群聊)的頭像、昵稱

在EaseBaseMessageCell.m文件中的- (void)setModel:(id)model方法中對(duì)model進(jìn)行判斷賦值代碼如下

[super setModel:model];

//消息來自哪個(gè)人 用這個(gè)id查詢數(shù)據(jù)困

NSLog(@"%@",model.message.from);

[[BGFMDB intance] queryWithTableName:TableName keys:nil where:@[@"loginName",@"=",String(model.message.from)] complete:^(NSArray *array) {

if (array[0][@"iconUrl"]) {

[self.avatarView sd_setImageWithURL:[NSURL URLWithString:[NSString stringWithFormat:@"%@%@",PhotoUrl,array[0][@"iconUrl"]]] placeholderImage:model.avatarImage];

} else {

self.avatarView.image = model.avatarImage;

}

_nameLabel.text = array[0][@"nickName"];

if (self.model.isSender) {

注:如果完成后如果出現(xiàn)用A號(hào)跟B號(hào)聊天? 什么都正常谆焊,但是換C號(hào)惠桃,D號(hào)跟B號(hào)聊天顯示的都是A號(hào)的名、聊天記錄都是A辖试,B的話辜王。極有可能就是用戶退出的時(shí)候在環(huán)信的服務(wù)上沒有正常的退出,在用戶退出的時(shí)候點(diǎn)用環(huán)信的退出即可

本人菜雞一個(gè)寫下這個(gè):一是為了幫助像我這樣的小白罐孝。二是好記性不如爛筆頭(爛筆頭都買不起)就寫在這里呐馆。有什么不對(duì)的請(qǐng)指教!勿噴AぁP诶础!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末怒见,一起剝皮案震驚了整個(gè)濱河市俗慈,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌遣耍,老刑警劉巖闺阱,帶你破解...
    沈念sama閱讀 218,640評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稍味,死亡現(xiàn)場(chǎng)離奇詭異淑玫,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)栓撞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,254評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門纪隙,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赊豌,“玉大人,你說我怎么就攤上這事绵咱〉獗” “怎么了?”我有些...
    開封第一講書人閱讀 165,011評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵悲伶,是天一觀的道長(zhǎng)艾恼。 經(jīng)常有香客問我,道長(zhǎng)麸锉,這世上最難降的妖魔是什么钠绍? 我笑而不...
    開封第一講書人閱讀 58,755評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮花沉,結(jié)果婚禮上柳爽,老公的妹妹穿的比我還像新娘媳握。我一直安慰自己,他們只是感情好磷脯,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,774評(píng)論 6 392
  • 文/花漫 我一把揭開白布蛾找。 她就那樣靜靜地躺著,像睡著了一般争拐。 火紅的嫁衣襯著肌膚如雪腋粥。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,610評(píng)論 1 305
  • 那天架曹,我揣著相機(jī)與錄音隘冲,去河邊找鬼。 笑死绑雄,一個(gè)胖子當(dāng)著我的面吹牛展辞,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播万牺,決...
    沈念sama閱讀 40,352評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼罗珍,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了脚粟?” 一聲冷哼從身側(cè)響起覆旱,我...
    開封第一講書人閱讀 39,257評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎核无,沒想到半個(gè)月后扣唱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,717評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡团南,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,894評(píng)論 3 336
  • 正文 我和宋清朗相戀三年噪沙,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片吐根。...
    茶點(diǎn)故事閱讀 40,021評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡正歼,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出拷橘,到底是詐尸還是另有隱情局义,我是刑警寧澤,帶...
    沈念sama閱讀 35,735評(píng)論 5 346
  • 正文 年R本政府宣布冗疮,位于F島的核電站萄唇,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赌厅。R本人自食惡果不足惜穷绵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,354評(píng)論 3 330
  • 文/蒙蒙 一轿塔、第九天 我趴在偏房一處隱蔽的房頂上張望特愿。 院中可真熱鬧仲墨,春花似錦、人聲如沸揍障。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,936評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽毒嫡。三九已至癌蚁,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間兜畸,已是汗流浹背努释。 一陣腳步聲響...
    開封第一講書人閱讀 33,054評(píng)論 1 270
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留咬摇,地道東北人伐蒂。 一個(gè)月前我還...
    沈念sama閱讀 48,224評(píng)論 3 371
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像肛鹏,于是被迫代替她去往敵國(guó)和親逸邦。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,974評(píng)論 2 355

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