美文网首页
swift导入环信SDK和EaseUI

swift导入环信SDK和EaseUI

作者: cry_0416 | 来源:发表于2016-09-03 10:50 被阅读1915次
    • 可以用这个连接下载相关的文件

    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-------

    相关文章

      网友评论

          本文标题:swift导入环信SDK和EaseUI

          本文链接:https://www.haomeiwen.com/subject/aamkettx.html