环信基础聊天集成

在做前端开发过程中难免会遇到聊天功能的开发,我在这里给大家分享一下我用环信集成基础聊天功能的一些心得和注意点。
在集成聊天功能的时候首先的准备工作是首先在环信官网注册账号,然后按照官方文档创建一个项目,要记住自己这个项目的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

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 版权声明:本文为博主原创文章,未经博主允许不得转载。 前言 公司最近要求做即时通讯, 直接用了三方环信了,今天和大...
    Heaven7th阅读 9,611评论 24 30
  • 第一次集成环信SDK应该是在去年吧,那个时候还是2.0的版本,没想到后面做的几个APP都用到了环信的及时聊天,用过...
    imGeek阅读 1,615评论 4 16
  • 大大小小关于环信的知识点都在这里了!(之前自己写了一个文档所以现在这些都是粘贴文档了) 一.环信常识: 1.名词解...
    夜空已沉寂阅读 2,663评论 3 30
  • 月初在上认证课的时候,李凯老师教我们使用生涯决策单的时候,告诉我们:人为什么会纠结,就是因为人太贪!!想要的太多,...
    dongbo_tree阅读 175评论 0 0
  • 一裾裙角,看不尽繁华梦楼,两蹙柳眉,叹不完风雨飘摇。 有时觉得你是风,来的轻盈走的潇洒。有时觉得你是雨,总能在我生...
    追太阳的傻瓜阅读 272评论 0 0