即時通訊已經是潮流中的潮流尾了,我決定抓住潮流的尾巴,於是集成了一下環信,早就聽說環信的集成會有很多坑,確實不少,但是還好有貼心的技術客服幫助一一解答。
廢話不多說,環信的集成看文檔來就可以,下面主要說一下中途遇到的坑以及解決方法:
1、pod 'Hyphenate_CN', '~> 3.2.0'
提示ios集成sdk引入EaseUI包,"EaseMob.h"文件找不到
解決:
3.x SDK 的EaseUI里面是不需要使用easeMob.h 文件的(下載最新的demo,從中拉取EaseUI到項目中)
2、demo下載好了測試demo的賬號是什么呢?
解決:
dh6666 123456
3、報出could not build module 'Foundation' could not build module 'UIKit'錯誤
解決:SDK手動加吧
4、SDK手動加入后,引用的頭文件 "EMSDKFull.h"、"EaseUI.h"后仍報could not build module 'Foundation' could not build module 'UIKit'錯誤
解決:在你的pch文件中 所有的頭文件 都加到 #ifdef __OBJC__ #import " " 。。。。 #endif 內
5、
解決:把EaseUI中的 EMSDWebimage 刪了,報錯的地方 換成你自己的SDWebimage的方法
6、
解決:將#import "UIImage+EMGIF.h"文件添加到項目中
7、
解決:SDK 不支持 bitcode,向 Build Settings → build options → Enable Bitcode 中設置 NO。
8、表情為什么沒有呢?
解決:在EaseMessageViewController.m類的viewdidload中的最后加上
EaseEmotionManager *manager= [[EaseEmotionManager alloc] initWithType:EMEmotionDefault emotionRow:3 emotionCol:7 emotions:[EaseEmoji allEmoji]];
[self.faceView setEmotionManagers:@[manager]];
9、發送消息發不出去
解決:看登錄環信服務器成功沒,(登錄方法看文檔)一般是用戶登錄你們自己服務器成功之后 在調用登錄環信服務器的方法
10、登錄失敗
解決:看error.code error.code=204 EMErrorUserNotFound 204是用戶不存在
11、發語音的時候蹦了
解決:將這個字段添加到info.plist 文件里面,其他如相機、藍牙、相冊、位置等,都在info.plist文件中需要添加
12、無法使用實時語音
解決:調用實時語音的方法就ok了,demo是先跳轉到callviewcontroller方法的,怎么知道用戶點的是這個圖標呢,不同的button響應方法不同啊這個圖標的響應方法是什么?是takeAudioCallAction這個方法
現在只是發通知,沒有注冊監聽者
[[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_CALL object:@{@"chatter":self.conversation.conversationId, @"type":[NSNumber numberWithInt:0]}];
你要監聽這個通知來實現發起實時通話的方法
在demo在ChatDemoHelper.m寫的
一般在工程的根控制器中去監聽,實現全局監聽
[[NSNotificationCenter defaultCenter] postNotificationName:KNOTIFICATION_CALL object:@{@"chatter":self.conversation.conversationId, @"type":[NSNumber numberWithInt:0]}];無論在哪個頁面 有人給你撥打實時通話 你都能監聽到
在添加監聽的時候,可以直接使用"ChatDemoHelper.h"這個文件