swift导入环信SDK和EaseUI

  • 可以用这个连接下载相关的文件

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(我用的是不含实时语音)

swift导入环信SDK和EaseUI_第1张图片
  • 一共三个文件,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  
    #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-------

你可能感兴趣的:(swift导入环信SDK和EaseUI)