-
可以用这个连接下载相关的文件
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-------
网友评论