环信基础聊天集成

作者: 云彦民 | 来源:发表于2016-04-11 13:31 被阅读2953次

在做前端开发过程中难免会遇到聊天功能的开发,我在这里给大家分享一下我用环信集成基础聊天功能的一些心得和注意点。
在集成聊天功能的时候首先的准备工作是首先在环信官网注册账号,然后按照官方文档创建一个项目,要记住自己这个项目的appkey,在后面的集成中要用到。
后面就是推送证书的创建了(如果不需要离线推送消息可不必创建)推送证书的具体步骤:

  1. 打开[苹果开发者网站]


    7AF81C34-5AEF-4CF3-B3F2-7E4BF76A85A1.jpg

    step2. 从Member Center进入Certificates, Identifiers & Profiles



    step3. 选择要制作的推送证书

    对于开发环境(sandbox)的推送证书, 请选择 Apple Push Notification service SSL (Sandbox)
    对于生产环境(production)的推送证书, 请选择 Apple Push Notification service SSL (Production)
    step4. 选择对应的APP ID (环信示例使用ChatDemoUI, 所以此处选择com.easemob.enterprise.demo.ui)



    step5. 根据Certificate Assistant的提示, 创建Certificate Request

    step6. 上传上一步中创建的Certificate Request文件

    step7. 上传完毕后, 推送证书就被正确生成了, 之后我们下载下来这个证书, 并双击导入系统

上传推送证书
step1. 打开Application –> Utilities –> Keychain Access应用, 我们会看到有刚刚我们制作好的推送证书


step2. 选中证书对应的私钥(或者展开后选中证书), 点右键, 选择导出, 并设定密码(本步导出的证书使用的电脑务必与制作证书时step5中使用的是一台电脑。)

step3. 登陆环信管理后台

step4. 输入了正确的账号后, 选择对应的APP(环信示例为ChatDemoUI, 点击ChatDemoUI)

step5. 填写的证书名称
这个名称是个有意义的名字, 对推送直接相关, 稍后会在源码的修改里继续用到这个名字. 上传之前导出的P12文件, 密码则为此P12文件的密码, 证书类型请根据具体情况选择
(创建的是Apple Push Notification service SSL Sandbox请选择开发环境; Apple Push Notification service SSL Production请选择生产环境),
step6. 上传

请注意正确选择是生产环境还是测试环境的证书(我选的是开发环境,如果报错就选择生产环境)
集成SDK
集成SDK有两种方法,一种是用cocoaPods直接下载到自己的项目,一种是从官网下载SDK然后自己导入,不管哪种都需要导入第三方依赖库:
  1. 导入SDK
    将下载好的SDK文件夹(EaseMobSDK)拖入到项目中,并勾选上Destination


  2. 设置工程属性
    2.1. 向Build Phases → Link Binary With Libraries 中添加依赖库
    iOS_AddFramework icon
    SDK依赖库有
    MobileCoreServices.framework
    CFNetwork.framework
    libEaseMobClientSDKLite.a
    libsqlite3.dylib
    libstdc++.6.0.9.dylib
    libz.dylib
    libiconv.dylib
    libresolv.dylib
    libxml2.dylib
    (如果使用的是xcode7,后缀为tbd)
    2.2. 向Build Settings → Linking → Other Linker Flags 中 添加-ObjC(注意大小写)
    iOS_OtherLinker icon
    2.3. 如果项目中使用-ObjC有冲突,可以添加-force_load来解决。
    格式为: -force_load[空格]EaseMobSDK/lib/libEaseMobClientSDKLite.a(静态库的路径)(导入SDK过后会自动添加,如果没有就需要手动添加了,路径在EaseMobSDK-->lib中)。
    step1. 先添加一个-force_load

step2. 将静态库拖动到上一步添加的-force_load下面


step3. 最终效果

编译工程
以上步骤进行完后,编译工程,如果没有报错,恭喜你,集成sdk成功,可以进行下一步了。
我们集成聊天功能的时候很多东西其实都不用我们动手,例如聊天页面等,我们可以直接从demo中拖过来,如果有不如意的地方,可以根据自己的喜好适当修改,下面我就说一下需要从环信3.0中搜索下面文件直接导入:

319BAD3B-1966-4E27-ABB8-24556D51BFA3.jpg

编译过后会报错如下图:


95449911-4BAC-4841-B5ED-7AEBAEDC70D2.jpg

这是因为没有导入EaseUI头文件导致的,在这里我们可以创建一个PCH文件(注意配置路径在


8565D69F-8740-4F74-9A15-B8467FE33BFA.jpg

在pch文件中导入EaseUI.h头文件,编译成功。但是有可能出现报错这里介绍两种常见的报错

第一种:


A0688AC5-BEBC-43D7-AF9F-0D1FDCCB9E10.jpg
这种报错解决办法是在环信3.0的demo中导入FixFopen.c文件即可,如果仍然报错那么在自己的pch文件中加入如下代码即可:
E18E513C-010A-47C3-957E-28DA14C8B033.jpg
第二种属于第三方库的冲突报错,这种的话可以将环信中的第三方删除,其中需要注意的两个第三方库是EMSDWebImage这是环信自己加了前缀,删除这个第三方库过后要在相应的代码中删除EM前缀删除;
第二个是MJRefresh使用的是老版本的,在新版本中一些老的方法已经删除,所以只能用EaseUI中的MJRefresh,后期环信应该会更新的。
下面就是,用户的登录和注册了。这个由于我只是搭建的简单的基础聊天功能,我将这段代码写在appdelegate里面的,废话不多说,直接上图吧:
B9F69B3B-9D42-4786-8458-FBEBEB077B98.jpg
注释中间有说明如何聊天。

现在最主要的就是如何才能实现聊天界面的配置了,其实也是相当简单的,下面我们说说具体是怎么做的吧!!!其实聊天界面在我们刚才导入的EaseUI中就已经搭建好了,我们只需要跳转过去就行了

6FFA2C8B-8E69-4ED5-825F-AFC0A0348EAD.jpg

这里我用的是button跳转,具体代码图片上面都有,下面给你们看下效果图吧!!!

Simulator Screen Shot 2016年4月11日 下午1.28.56.png Simulator Screen Shot 2016年4月11日 下午1.29.09.png

到此为止我们集成基础聊天功能就结束了,有什么不明白的和技术问题可以参考环信官方文档和在线咨询。

相关文章

  • 环信基础聊天集成

    在做前端开发过程中难免会遇到聊天功能的开发,我在这里给大家分享一下我用环信集成基础聊天功能的一些心得和注意点。在集...

  • iOS开发-在现有项目中集成环信SDK及EaseUI

    公司项目中需要集成即时聊天的功能,在现有项目的基础上集成环信最新的SDK遇到了很多坑 注册和创建应用 环信开发文档...

  • 环信聊天集成

    前言 在这个信息爆炸的时代,好像应用内聊天(即时通信)也称为了每款app的必备,如何实现聊天功呢? 这里分为两种情...

  • IPV6适配之环信SDK

    项目中集成了环信,在IPV6 下无法登录环信的聊天服务器,无法聊天,因此需要适配环信 ,去年7月集成的版本应该是...

  • 环信聊天室demo

    开发一个直播项目需要用到环信聊天室,折腾后自己集成环信聊天不带语音版本,集成环信UI删减一些不要的东西1.需要在x...

  • ios环信3.0版本集成(包含音频通话)

    由于最近需求需要给app添加聊天功能,所以想到了环信,上一次集成环信是去年了,当时也只是简单的集成简单聊天功能,也...

  • iOS 之环信的使用

    一.环信简介 二.集成环信iOS SDK 三.初始化环信SDK 四.注册 五.登录 六.好友 七.消息 八.聊天 ...

  • 环信

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

  • 一.导入环信SDK前期准备工作:

    近期研究环信的集成,想对聊天这一块进行一个综合的梳理,希望能够有所感悟。下面这是开篇,由于集成环信SDK,就像下面...

  • 集成环信的EaseUI报错遇到的问题

    前因 项目里面用到了环信,需要集成环信的聊天和EaseUI。 遇到的问题 1.重复引用 因为环信中使用到了 MW...

网友评论

  • 秋S寂S:请教下,libEaseMobClientSDKLite.a和libEaseMobClientSDK.a两个库都要的吗?
  • Ambitiones:大神 我的提示MJRefresh冲突了 怎么解决
    Ambitiones:@阿龍飛 你把环信中的MJ删掉 然后给环信EaseUI中使用到的MJ前缀EM_去掉就行了
    云彦民:@阿龍飛 应该是重复导入了!!!环信里面有自带的MJ
    阿龍飛:@one_person 大神 我的提示MJRefresh冲突了 怎么解决
  • 十一岁的加重:填名入坑
  • snail小菜:我也是刚集成了,好多坑啊,用到最新3.1.5版本的,有问题可以@我
    snail小菜:1359417701qq
    云彦民:@浪尖上的水滴 1027078863QQ
    浪尖ON的水滴:@snail小菜 最近也在做,能留下联系方式交流下吗
  • 阳光的大男孩儿: :smiley: 大神 我要努力看看
    云彦民:@依然那么爱你forever 你是按我简书上面来的吗???
    阳光的大男孩儿:@没有过不去只有回不去 大神,我在集成的时候,怎么有好多错误,导入sdk没有问题,但是在导入EaseUI单独的聊天界面的时候,报了20多个错误,我也在pch中导入了“EaseUI.h”文件了,但是还是没有解决,不知道该怎么办了
    云彦民:@依然那么爱你forever 哈哈哈……
  • Hither:大神!
    Hither:@没有过不去只有回不去 带我飞
    云彦民:@写代码我负责帅 :joy::joy::joy::joy:
  • Shan呐邊:我把easeUI集成进去了 ,但是使用 ChatView 里面的这个ChatViewController 这个界面的时候报错了 ,不能用 是什么原因呢,请教一下
    Shan呐邊:@没有过不去只有回不去 就是他的这个类里面有好几个方法都报错 ,我注释了之后 运行 登录成功 ,但是点进这个页面直接就程序崩溃了
    Shan呐邊:@没有过不去只有回不去 可以加qq聊吗,这里没法截图
    云彦民:@Shan呐邊 报什么错?
  • 来宝:如果我使用自己的服务器,仅仅是UI使用环信的,该怎么集成?
    云彦民:@来宝 没有关系的,你可以在登录自己服务器的同时登录环信
  • 未完成1307:写的很详细,很有用哦

本文标题:环信基础聊天集成

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