1.官網(wǎng)
1.表情云 iOS API (BQMM 表情包)
2. 界面展示
3.本文適配 對(duì)應(yīng) 版本 (2018.1.22)
1.表情云 :V2.0.0 (2017.12.27)
2.環(huán)信:3.3.7 (2017.11.30)
注意 :
1.本次 適配 的環(huán)信版本( 3.3.7 ) 與 表情云官網(wǎng) 下載的demo中表情云的 版本( 3.1.4 )不同
2.不要使用 cocoaspod 導(dǎo)入 BQMM 因?yàn)槟菢酉螺d的對(duì)應(yīng)類庫(kù) 會(huì)與 表情云- 環(huán)信demo 的文件不一致,缺少 MMGifManager.h
文件等...,所以 本文 選擇 手動(dòng) 導(dǎo)入BQMM
具體操作 參考 http://open.biaoqingmm.com/doc/sdk/content/ios/implement_manual/
4.適配中注意點(diǎn)
1.打開(kāi)demo 全局 搜索 //BQMM集成
(由于 本人項(xiàng)目 不需要 ContactListSelectViewController.h
文件 所以不做操作)欣鳖,剩下的就是對(duì) 搜索的文件 與 自己配置好的環(huán)信項(xiàng)目進(jìn)行配置
2.#import "EaseMessageViewController.m"
文件 針對(duì)于 環(huán)信 3.3.7 需要添加(3.1.4版本 不需要添加如下方法)
2.1
//BQMM集成 -- 自己
- (void)_sendMessage:(EMMessage *)message
{
if (self.conversation.type == EMConversationTypeGroupChat){
message.chatType = EMChatTypeGroupChat;
}
else if (self.conversation.type == EMConversationTypeChatRoom){
message.chatType = EMChatTypeChatRoom;
}
[self addMessageToDataSource:message
progress:nil];
__weak typeof(self) weakself = self;
[[EMClient sharedClient].chatManager sendMessage:message progress:nil completion:^(EMMessage *aMessage, EMError *aError) {
if (!aError) {
[weakself _refreshAfterSentMessage:aMessage];
}
else {
[weakself.tableView reloadData];
}
}];
}
原因: 3.3.7 新增了如下 方法
- (void)_sendMessage:(EMMessage *)message isNeedUploadFile:(BOOL)isUploadFile
2.2
3.添加 新文件 EaseBubbleView +MMText.h
時(shí)候 需要 引入 如下2個(gè)文件
-
EaseChatToolbar.h
文件
4.1.針對(duì)于 3.3.7 需要在.h 導(dǎo)入 如下方法
//BQMM集成 -- 自己
- (void)didSendTextMessageWithTextView:(UITextView *)textView;
原因 3.3.7 中省去 上面的方法
4.2. EaseChatToolbar.m
5.#import "EaseCustomMessageCell.m"
//BQMM集成 方法中 針對(duì)于 sd_setImageWithURL:...的方法
- (void)setCustomModel:(id<IMessageModel>)model{
.......
}
原因 是環(huán)信 重寫(xiě)了 SD的一些方法褂傀,報(bào)錯(cuò)
下圖為 表情云demo 的代碼(錯(cuò)誤) 上圖為更正后的 代碼