-
可以用這個連接下載相關的文件
http://downloads.easemob.com/downloads/ios_IM_sdk_V3.1.5.zip
這個連接里面少了個Resource文件- -,具體我也找不到在哪可以下了
一.新建一個swift項目,第一件事就是建一個oc文件,中間提示建briding-header文件
- xxxxx-briding-header
在橋文件中寫入:
#import "EMSDK.h"
#import "EaseUI.h"
二.導入EaseUI和HyphenateSDK(我用的是不含實時語音)
-
一共三個文件,EaseUI文件中的EaseUI和resource,和SDK
-
prefix文件后面有說
三.導入所需要的靜態庫, 此版本不包含實時語音。向Build Phases → Link Binary With Libraries 中添加依賴庫
libsqlite3.tbd
libstdc++.6.0.9.tbd
libz.tbd
libc++.tbd
ImageIO.framework
MobileCoreServices.framework
AVFoundation.framework
AudioToolbox.framework
CoreMedia.framework
四.將prefix文件加到指定位置
-
自己建一個PCH文件
- Newfile... -> other -> PCH
- 在Prefix寫入代碼
#ifdef __OBJC__
#import <UIKit/UIKit.h>
#import "EMSDK.h"
#import "EaseUI.h"
#endif
-
將prefix文件加入到
//找到修改prefix header的位置
Build Settings - Apple LLVM 7.1 - Language - Prefix Header中
或者直接在Build Settings 搜索Prefix Header
把prefix文件直接拖入,或者寫入prefix文件的絕對路徑
這時候運行還是有問題的
五.修改bitcode
SDK 不支持 bitcode
Build Settings → Linking → Enable Bitcode 中設置 NO。
到這里應該能正常運行了
------更新------
-
六.使用表情鍵盤就崩潰
- 在 EaseMessageViewController 的viewdidload 方法中設置 self.EaseFacialView 的emotionManagers
我遇到的坑: 在viewdidload前面加的,報錯,加載viewdidload最后就ok了
//EaseEmotionManager * manager = [[EaseEmotionManager alloc] initWithType:EMEmotionDefault emotionRow:3 emotionCol:7 emotions:[EaseEmoji allEmoji]]; [self.faceView setEmotionManagers:@[manager]];
------9/3更新------
-
七.更換頭像和昵稱
思路: 實現EaseMessageViewController
的協議EaseMessageViewControllerDataSource
里的一個方法
func messageViewController(viewController: EaseMessageViewController!, modelForMessage message: EMMessage!) -> IMessageModel! {
let model:IMessageModel = EaseMessageModel(message: message)
//這里寫代碼
//model的avatarImage屬性,可以設置為本地圖片為頭像
//model的avatarURLPath屬性,通過URL設置頭像
//model的nickname屬性,設置昵稱
***這里是修改全部的,要自行判斷message是否來源自己的進行設置***
return model
}
- 如果不會用oc寫
- 最好繼承
EaseMessageViewController
,然后實現EaseMessageViewControllerDataSource
,就可以用swift寫代碼了 - 記得關聯
override func viewDidLoad() {
super.viewDidLoad()
self.dataSource = self
}
------9/4AM------
八.顯示頭像和昵稱
通過消息拓展發送頭像URL和昵稱
- 首先,先在
EaseMessageViewController.m
里找到
- (void)sendTextMessage:(NSString *)text
{
//將NSDictionary *ext = nil修改成
NSDictionary *ext = @{@"accountName":@"oldDriver",@"img":@"http://ww4.sinaimg.cn/bmiddle/005Kg81Agw1f7gel4rm4oj30hs0hst9j.jpg"};
}
將個人名稱與頭像url通過消息發送出去
- 然后,找到
EaseMessageModel.m
-(instancetype)initWithMessage:(EMMessage *)message
{
//修改_nickname(昵稱) 和 _avatarURLPath(頭像URL)
if (message.ext[@"accountName"]){
_nickname = message.ext[@"accountName"];
}
_avatarURLPath = message.ext[@"img"];
}
但是,有個問題,這是這是根據每條消息附帶的頭像url和昵稱顯示的,如果修改了昵稱或者頭像,則同一個人發送的顯示不同昵稱或者頭像
------To be continue-------