美文网首页iOSiOS 开发技巧iOS技术
iOS 环信Demo集成即时聊天和UI 经验分享

iOS 环信Demo集成即时聊天和UI 经验分享

作者: 睡不着的叶 | 来源:发表于2016-06-21 17:20 被阅读15168次

刚做完一个拥有即时聊天模块的项目,项目中用的是环信3.0,虽然感觉中间有点小坑,但是总体感觉还是棒棒哒,比我两年前纯用XMPP+openfire便捷多了,而且环信的开发文档感觉好对我的胃口,写的很用心,所以喽,今天分享一下环信的集成和UI页面的摘取。

一、准备工作

1、sdk和静态库的导入

  • 首先是导入环信的sdk,编译,这个过程的困难不是很多,简单提一下,首先下载好EaseMobSDK,这里注意一点的是,lib静态库中包括EaseMobClientSDKLiteEaseMobClientSDK这两种,如果你需要实时语音的话选择EaseMobClientSDK,否则选择EaseMobClientSDKLite,两者只能导入一个。
  • 添加静态库
    CoreMedia.framework
    AudioToolbox.framework
    AVFoundation.framework
    MobileCoreServices.framework
    ImageIO.framework
    libc++.dylib
    libz.dylib
    libstdc++.6.0.9.dylib
    libsqlite3.dylib
    SDK包含实时语音依赖库有
    CoreMedia.framework
    AudioToolbox.framework
    AVFoundation.framework
    MobileCoreServices.framework
    ImageIO.framework
    libc++.dylib
    libz.dylib
    libstdc++.6.0.9.dylib
    libsqlite3.dylib
    libiconv.dylib
    (注意:SDK 不支持 bitcode,向 Build Settings → Linking → Enable Bitcode 中设置 NO。)
    然后编译工程,不出意外就成功啦。啊哈哈,开瓶啤酒庆祝一下自己的智商。如果,有些小猴子不成功,例如我😣

上面的原因是,导入的静态库重复,自己检查吧

二、移植环信的demo中需要的到自己的项目

我这里用到了聊天列表,消息的页面和聊天的主页面,大家再倒入这个之前,一定要先备份!项目,否则一失足成千古恨,或者把svn中的项目弄坏了,就自己站墙角去吧。做这个一定要细心,不能着急,最好要记录移过来的每一个类都是干啥的,防止出错,不知道怎么排查。直接看我的图,按照我这张图细心点,相信可以的。

1.以下这张是消息列表需要导过来的类,有些View里面的类是我自己添加的,和demo比对吧,有的就添加进来

消息列表

2.以下是聊天页面需要的类,CL开头的类,是我自己写的,不用管,剩下的都是需要的

聊天页面

3.剩下需要的东西,这个很重要,要细心哦

相关

其中有些文件夹里的东西,也需要注意,上图:


环信相关

还有,这里面APPDelegate的拓展也比较重要,AppDelegate+EaseMob这个不用白不用了,很方便。

4.做完这些,细活出来啦
做完这些,就是表演真正的技术的时候了。不要想着运行程序跑起来,那肯定是和中彩票一样的概率。具体的报错地方很多,但是都是一些用不上的类不错,我也记不清楚了,只能你们一点一点把不用的地方删除就ok。这个东西不少,但是不复杂,要细心(说了好几遍了)

常见问题:
1.当你导入FixFopen.c的时候会出现


这个是因为添加chatView聊天页面时候缺少依赖库 依赖库

2.如果你需要pch文件,可能会遇见下面问题,需要加上#ifdef __OBJC__ #endif 就好了

pch问题

3.一些警告的问题,都可以忽略了。因为聊天列表和聊天页面,demo3.0中有环信机器人相关的代码,通通删除,不会有影响的。

三、经验之谈

1.环信好用的首要一点就是,各种方法都包含EMMessage这个模型,里面可以用到自己需要的东西,还有拓展,如果开发什么新的模块和写新的方法,建议都传过去EMMessage。

2.chatViewController是继承于EaseMessageViewController这个基类的,里面包含了基本用到的代理方法,方便灵活使用。


3.肯定会操作聊天气泡和自定义消息,就是从MessageCellBubbleView里面修改的,自定义消息,也是要重新写view的拓展,例如下图中我订制的EaseBubbleView+Card类等


消息cell和自定义消息

4.自定义消息的发送直接调用就好了,这个很方便,消息拓展Ext的字段和类型需要提前商定

[EaseSDKHelper sendTextMessage:@"自定义消息"
to:self.easeGroupId
messageType:eMessageTypeGroupChat
requireEncryption:NO
messageExt:tmpDict];

暂时完结

暂时分享这么多,希望大家都能成功集成,顺利拿下项目。用第三方的demo集成,一定要知其所以然,一点一滴做起。有什么问题可以随时留言交流,希望我写的能让你们少走点弯路。谢谢大家支持。

相关文章

  • iOS 环信Demo集成即时聊天和UI 经验分享

    刚做完一个拥有即时聊天模块的项目,项目中用的是环信3.0,虽然感觉中间有点小坑,但是总体感觉还是棒棒哒,比我两年前...

  • iOS 环信集成

    1、流程类: 最新环信V3.3.7单聊集成与使用 iOS环信3.0集成 (三)单聊集成有视频 iOS 环信3.0D...

  • iOS集成环信的会话列表

    参考IOS快速集成环信IM - 基于官方的Demo优化,5分钟集成环信IM功能 虽然网上的教程很多,但是自己集成的...

  • 环信im小程序demo介绍

    介绍 环信小程序demo是基于环信im SDK开发的一款即时通讯的小程序。这个demo可以帮助开发者们更轻松的集成...

  • 环信

    iOS 集成环信(四) 群聊iOS 环信集成(五) 加载会话列表

  • 基于环信3.0仿WeChat

    没有集成环信UI,纯新手做的demo,页面都是自己写的,毕竟环信3.0有好多坑,喜欢的可以看看头像昵称功能没有实现...

  • 环信UI3.0的集成方法

    介绍一下把环信EaseUI集成到项目中的具体实现步骤。 1.集成UI之前要把环信的SDK集成到项目中,环信SDK有...

  • IOS环信集成单聊

    最近几天在集成环信 ,文档大概也看了 简单说下集成步骤! 1.SDK集成和环信配置 iOS SDK 介绍及导入 ...

  • iOS集成环信单聊

    第一步: 环信后台创建应用,获取AppKey 第二步: 获取到AppKey去注册IM用户 第三步: 导入环信...

  • iOS开发-集成环信即时通讯会话列表和聊天头像的设置

    环信SDK集成 请参考iOS开发-在现有项目中集成环信SDK及EaseUI或者参考官方文档 此操作只针对已集成环信...

网友评论

  • Albert新荣:环信做的真的不好
  • 鸢尾嵌宇:为什么我自定义了单元格,之后,那个“已读”的提示就没有了呢?跪求
  • feng_dev:楼主,群聊的,A 建群成功,发送消息也行,B 没有如何在 会话列表里面 监听 到 ?然后列表自动就 有了 那一行 群消息。 求教
  • 雪_晟:环信消息, 本地需不需要做数据库存储呢
  • 2471b6ee3138:请问下 可以把环信单独的ui拿出来用吗
  • 青鸟evergreen:哥们你这么做就违背了环信的初衷了,这不是越做越麻烦么
  • nbawater1234:大神 可以发demo
    过来看下吗 。jmm15222135609@163.com
  • ivylee_mr:环信 的开发者文档 还有关于 推送这一块的东西,
    我想问的是,如果我不需要 推送服务,是不是 就不需要按照 上面的在apple developer 上弄推送的一些设置 ,直接用
  • 上升的羽毛:你好,我现在需要自定义气泡里面的内容,怎么修改啊,完全不知道从哪下手。就要微信里面发送名片一样那种cell,我不想改整个cell,只想改掉气泡,你懂我意思吗?谢谢
    睡不着的叶:@浅浅1120 恩,你看demo,它本身有几种气泡形式。例如照片啊,位置啊,都继承于一个气泡view的基类。你也写一个就好了。模仿他那个。
  • Ko_Neko:请问如果不需要完整的IM界面. 只需要某个模块里有一条聊天室 该怎么做那
  • 朋朋嘭砰碰:sdk不是集成进去就可以了吗,还要删除一些啊,新手
  • w佐w:有没有集成会话列表的demo,按照官方的demo分离出来好多错误
    w佐w:会话列表 分离出来牵扯好多父类 我直接自己写了一个
    睡不着的叶:@W佐Z 是的,我这里没有demo,细心点,那些错误、你好好研究一下,应该都能看懂,先把没用的注释掉就好了。一开始我集成的时候也错误很多,主要是不知道他写的什么意思,你看下逻辑,就好了
  • 6991a5a482e5:请问即时通讯不需要自己的服务器吗?
    6991a5a482e5:@睡不着的叶 好的,谢谢了
    睡不着的叶:@dxykevin 自己的服务器保存好友关系相关的就好了。如果对即时聊天的要求不高。聊天相关的就用环信服务器就好了。直接从他们那调取,
  • imGeek:关注我会有你想要的东西
  • 峰子1994:可以发来看看吗
    睡不着的叶:@峰子1994 保密协议:scream:
    峰子1994: @睡不着的叶 @睡不着的叶 都可以上线呀没事
    睡不着的叶:@峰子1994 我这没有demo,正式的项目发不了啊:sweat:

本文标题:iOS 环信Demo集成即时聊天和UI 经验分享

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