iOS:集成环信EaseMobSDK单聊功能

简介:

当然在集成环信之前需要一些准备操作:

1、首先注册环信开发者账号,直接进入环信官网注册即可:http://www.easemob.com

2、按照文档一步一步将需要的文件全部拖入工程中:http://docs.easemob.com/start/start

以下是我集成的文件:使用

  EaseUI集成http://docs.easemob.com/start/300iosclientintegration/140easeuiuseguide

  libEaseMobClientSDK.a包

  ChatDemo-UI3.0中的ChatView中的聊天控制器

我主要使用EaseMob中这个EaseSDKHelper单例类来注册、登录、获取最新消息、推送等

在App启动程序时:

进入EaseSDKHelper单例类中,添加一些自定义的方法

  View Code

在会话列表控制器中:

  View Code

在聊天控制器中,直接集成ChatViewController

  View Code

在自定义的会话列表cell中,显示会话联系人、最后一条记录、时间

  View Code

消息提醒按钮

  View Code

最后在TabbarController中检测未读消息

 //首先得注册代理,监听未读消息数
 [[EaseMob sharedInstance].chatManager addDelegate:self delegateQueue:nil];
  View Code
//移除代理
-(void)dealloc{ [[EaseMob sharedInstance].chatManager removeDelegate:self]; }

测试后:

 

 

 

以上只是实现了单聊和群聊的功能,那么实时语音和视频如何实现呢,下面这个就是干货:

1.集成实时通话的前提是集成好单聊,并且使用的是libEaseMobClientSDK.a包,因为这个包 包含实时通话的功能
2.将demo3.0中的Call文件(实时通话的界面)以及Resources(通话界面的资源图片)加到你自己的工程中
3.点击实时通话或者视频的按钮,实际是发起的通知,在你工程中的主控制器中监听这个通知,在通知的方法中实现发起实时通话的方法以及跳转到通话界面
4.接收实时通话的回调是  - (void)callSessionStatusChanged:(EMCallSession *)callSession changeReason:(EMCallStatusChangedReason)reason error:(EMError *)error  
5.实时通话用的协议是:EMCallManagerDelegate    代理:[[EaseMob sharedInstance].callManager addDelegate:self delegateQueue:nil];
6.具体添加哪些方法看下上传的ViewController文件,按照这个文件中的方法加到自己的主控制器中,demo中的实现在MainViewController.m类

代码如下:

记得先导入call文件:这个是用来进行视频和电话语音的类

ViewController.docx文件:http://i.cnblogs.com/Files.aspx

  View Code

演示结果如下:经本人测试,在真机上运行没有问题,实时语音视频聊天均能够实现

左边为电话通话                  右边为视频通话

 

以下为参考资料:

1.基于环信Demo3.0,实现单聊功能:http://www.jianshu.com/p/f53be9664f14

2.集成环信的即时通讯:http://www.jianshu.com/p/b4618ef39274

3.环信聊天界面 - 显示历史会话记录http://blog.csdn.net/github_26672553/article/details/50719487

4.环信集成 - 加载会话列表http://blog.csdn.net/u010545480/article/details/49660255

5.扩展表情包:http://apps.timwhitlock.info/emoji/tables/unicode 

其他demo下载: https://github.com/zyprosoft/ZYChat

 

集成视频:http://www.imgeek.org/video/

github:https://github.com/xiayuanquan/EaseMobChat

 

 

本文转自当天真遇到现实博客园博客,原文链接:http://www.cnblogs.com/XYQ-208910/p/5396635.html,如需转载请自行联系原作者

相关文章
|
4小时前
|
存储 数据建模 iOS开发
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
iOS设备功能和框架: 什么是 Core Data,它在 iOS 中的作用是什么?
36 1
|
4小时前
|
定位技术 iOS开发
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
iOS设备功能和框架: 如何使用 Core Location 获取设备的位置信息?
21 0
|
4小时前
|
存储 Go
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
本文将探讨几个热门的 go 日志库如 logrus、zap 和官网的 slog,我将分析这些库的的关键设计元素,探讨它们是如何支持日志轮转与切割功能的配置。
125 0
Go 浅析主流日志库:从设计层学习如何集成日志轮转与切割功能
|
8月前
|
移动开发 安全 前端开发
提升iOS应用安全性:全面代码混淆功能介绍,使用Ipa Guard保护你的应用
iOS加固保护是直接针对ios ipa二进制文件的保护技术,可以对iOS APP中的可执行文件进行深度混淆、加密。使用任何工具都无法逆向、破解还原源文件。对APP进行完整性保护,防止应用程序中的代码及资源文件被恶意篡改。Ipa Guard通过修改 ipa 文件中的 macho 文件中二进制数据(代码模块配置)进行操作,无需源码。不限定开发技术平台。支持oc,swift,cocos2d-x、unity3d、quick-cocos,html5 ,react native等等各种开发技术。Ipa Guard主要包含代码混淆全面、资源文件处理、不需要源代码更安全、调试信息清理、即时测试运行。
|
4小时前
|
前端开发
基于Jeecgboot前后端分离的聊天功能集成(二)
基于Jeecgboot前后端分离的聊天功能集成(二)
|
4小时前
|
前端开发 API
基于Jeecgboot前后端分离的聊天功能集成(一)
基于Jeecgboot前后端分离的聊天功能集成(一)
|
4小时前
|
分布式计算 DataWorks MaxCompute
DataWorks产品使用合集之在DataWorks中,将数据集成功能将AnalyticDB for MySQL中的数据实时同步到MaxCompute中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
24 0
|
4小时前
|
机器学习/深度学习 人工智能 TensorFlow
安卓中的人工智能:集成机器学习功能
【4月更文挑战第14天】在数字化时代,人工智能与机器学习正驱动安卓平台的技术革新。谷歌的ML Kit和TensorFlow Lite为开发者提供了便捷的集成工具,使得应用能实现图像识别、文本转换等功能,提升用户体验。尽管面临数据隐私和安全性的挑战,但随着技术进步,更强大的AI功能将预示着移动端的未来,为开发者创造更多创新机遇。
|
4小时前
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
1、【宝塔】删除ripro文件,上传最新ripro版本,然后上传压缩包内的ripro里面的对应文件到ripro主题对应内覆盖(找到对应路径单个文件去覆盖)。 2、然后上传ripro-chlid子主题美化包到/wp-content/themes路径下 3、注意顺序 原版–>美化包–>后台启用子主题(已启用请忽略)。
32 0
【ripro美化】全站美化包WordPress RiPro主题二开美化版sucaihu-childV1.9(功能集成到后台)
|
4小时前
|
机器学习/深度学习 PyTorch TensorFlow
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
iOS设备功能和框架: 什么是 Core ML?如何在应用中集成机器学习模型?
35 0