在做前端开发过程中难免会遇到聊天功能的开发,我在这里给大家分享一下我用环信集成基础聊天功能的一些心得和注意点。
在集成聊天功能的时候首先的准备工作是首先在环信官网注册账号,然后按照官方文档创建一个项目,要记住自己这个项目的appkey,在后面的集成中要用到。
后面就是推送证书的创建了(如果不需要离线推送消息可不必创建)推送证书的具体步骤:
-
打开[苹果开发者网站]
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然后自己导入,不管哪种都需要导入第三方依赖库:
-
导入SDK
将下载好的SDK文件夹(EaseMobSDK)拖入到项目中,并勾选上Destination
- 设置工程属性
2.1. 向Build Phases → Link Binary With Libraries 中添加依赖库
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(注意大小写)
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中搜索下面文件直接导入:
编译过后会报错如下图:
这是因为没有导入EaseUI头文件导致的,在这里我们可以创建一个PCH文件(注意配置路径在
)
在pch文件中导入EaseUI.h头文件,编译成功。但是有可能出现报错这里介绍两种常见的报错
第一种:
这种报错解决办法是在环信3.0的demo中导入FixFopen.c文件即可,如果仍然报错那么在自己的pch文件中加入如下代码即可:
第二种属于第三方库的冲突报错,这种的话可以将环信中的第三方删除,其中需要注意的两个第三方库是EMSDWebImage这是环信自己加了前缀,删除这个第三方库过后要在相应的代码中删除EM前缀删除;
第二个是MJRefresh使用的是老版本的,在新版本中一些老的方法已经删除,所以只能用EaseUI中的MJRefresh,后期环信应该会更新的。
下面就是,用户的登录和注册了。这个由于我只是搭建的简单的基础聊天功能,我将这段代码写在appdelegate里面的,废话不多说,直接上图吧:
注释中间有说明如何聊天。
现在最主要的就是如何才能实现聊天界面的配置了,其实也是相当简单的,下面我们说说具体是怎么做的吧!!!其实聊天界面在我们刚才导入的EaseUI中就已经搭建好了,我们只需要跳转过去就行了
这里我用的是button跳转,具体代码图片上面都有,下面给你们看下效果图吧!!!
到此为止我们集成基础聊天功能就结束了,有什么不明白的和技术问题可以参考环信官方文档和在线咨询。