网易云信集成视频教程(六):如何快速实现iOS下IM自定义消息收发?
第三期视频集成教程中,我们介绍了Android自定义消息的实现,有小伙伴留言问我们会有iOS版本吗,现在iOS版本来了!第六期视频教程我们将教大家如何快速实现iOS下IM自定义消息收发。
第六期
如何实现iOS下IM自定义消息收发
9分钟视频手把手教你接入
文档详解
前期准备
1. 注册网易云账号后,创建网易云信应用,获取对应的Appkey。
2. 在该应用下,注册账号(accid或account),并获取密码(token)。
集成思路
自定义消息概述:云信提供了几种基础的消息类型,但无法满足所有开发者的业务需求,自定义消息应运而生。自定义消息需要开发者实现的内容主要是三大部分:序列化、反序列化与注册自定义消息解析器,其余的工作SDK内部会自动处理好,无需开发者关心。
展现形式说明:在上期的基础上,引入一种带有主副标题的自定义消息。并实现一个专门的发送按钮来发送该类型的自定义消息。实现效果如下图所示:
具体步骤
1. 消息体构建:序列化
在上期工程的基础上,新建一个文件夹CustomChatCell,并再建一个子文件夹Message用于存放自定义消息本身代码文件。
首先在Message文件夹下创建一个名为NTESAttachment的NSObject的子类,遵循NIMCustomAttachment协议,用于承载自定义消息,并同时增加主副标题属性。
其次在NTESAttachment.m中实现NIMCustomAttachment协议的-encodeAttachment:方法,用于自定义消息附件的序列化。
Tip:若应用中有多种自定义消息类型,则需要创建多个类似NTESAttachment的类。
2. 解析器构建:反序列化
与步骤1相似,首先在Message文件夹下创建一个名为NTESAttachmentDecoder的NSObject的子类,遵循NIMCustomAttachmentCoding协议。
其次,在NTESAttachmentDecoder.m中实现NIMCustomAttachmentCoding协议的-decodeAttachment:方法,用于自定义消息附件的反序列化,即解析。
Tip:与步骤1中不同,针对应用中存在多种自定义消息类型时,不必创建多种解析器。该种情况下,建议是在自定义的附件内容中增加一个标记自定义类型的type字段。然后解析器针对不同的case走入不同的解析逻辑。
至此,自定义消息的序列化与反序列化已完毕。
3. 增加发送按钮
在CustomChatCell文件夹下新建一个遵循NIMSessionConfig协议的类NTESSessionConfig。并在原defaultMediaItems基础上新增一个自定义消息的发送按钮。并为之增加资源图片icon_custom_normal与icon_custom_pressed。
之后,将其注入到聊天页面NTESSessionViewController中,并为点击事件书写发送自定义消息的代码。
4. 消息气泡设计
在CustomChatCell文件夹下新建一个类NTESCellLayoutConfig,继承自NIMCellLayoutConfig。并在其实现部分书写三个方法:判断是否是自定义消息、设定自定义气泡的大小和加载的对应自定义气泡contentView。即若为自定义消息,则-cellContent:方法返回为NTESContentView。
接下来,我们进一步设计NTESContentView。继续在Message文件夹下创建一个继承自NIMSessionMessageContentView的类NTESContentView,并添加两个UILabel对象作为承载主副标题的属性。
在实现部分实现三个方法:
-initSessionMessageContentView:初始化方法,设计ContentView的样式。
-refresh:该方法负责自定义消息的数据填充。
layoutSubviews:负责设置样式布局。
5. 注册解析器
在云信SDK初始化代码后,增加自定义消息解析器的注册。
至此,自定义消息已经集成完毕,赶紧试试吧~
点击【阅读原文】
看更多集成视频教程
网易云信集成视频教程(六):如何快速实现iOS下IM自定义消息收发?相关推荐
- 网易云信集成视频教程(四):如何快速实现iOS登录登出?
上期我们介绍了如何通过SDK实现自定义消息,第四期视频教程我们将教大家如何快速实现iOS系统下IM登录登出. 第四期 如何快速实现iOS登录登出? 8分钟视频手把手教你接入 文档详解 前期准备 1. ...
- 网易云信集成视频教程(一):如何快速实现安卓登录登出?
由于网易云信稳定.可靠的技术服务以及拥有深厚积淀的行业口碑,越来越多用户集成云信IM和音视频功能.为了提升用户集成效率,我们推出了一系列网易云信集成视频教程,希望帮助用户快速实现功能接入.第一期将为大 ...
- 网易云信集成视频教程(三):如何通过SDK实现自定义消息?
上期我们介绍了Android如何通过Uikit集成单聊模块,第三期视频教程我们将教大家如何通过SDK实现自定义消息. 前期准备 从官网开发文档自定义消息流程(https://dev.yunxin.16 ...
- Android 网易云信获取图片,Android 网易云信集成(一)
网易云信流程与账号管理 关于网易云信的注册还有应用管理就不说了,先说下网易云信的通信流程,只有清楚流程,你才能知道自己要做什么. 先是你的服务器端拿着accid还有其他参数发给网易云信,生成一个tok ...
- 网易云信入选《SegmentFault 思否 2019 中国技术品牌影响力企业榜单》!
近日,SegmentFault 思否作为中国最大的新一代开发者社区,依托数百万开发者用户行为数据,及科技企业技术品牌在国内市场的大数据分析,评选出 30 家在开发者领域最具影响力的科技企业,权威发布& ...
- 云信小课堂|5分钟快速实现iOS端PK连麦场景
Vol. 4 2021年开年,音频社交风靡互联网,语音社交再成风口,直播连麦开启社交新赛道.在实时通信技术不断革新的现状下,直播平台需要不断探索新的方式以满足用户日益增长的需求,直播连麦就是在此背景下 ...
- 保障IM推送、优化移动网络 网易云信解决移动IM稳定难题
引用内容"IM本身是一个比较复杂和庞大的系统,在客户端开发时,也就会涉及到很多繁杂的业务需求.当绝大多数IM平台商都在朝向功能化的一站化大潮流迈进时,唯有云信不忘静下心来沉淀内功.云信针对移 ...
- 来答疑了!关于网易云信 Innovation 2022 开发者大赛,你想知道的都在这儿!
9 月 8 日,网易云信 Innovation 2022 开发者大赛正式开赛并启动报名.本次大赛,"网易云信"携手"网易互娱学习发展",联合举办网易游戏高校 M ...
- 厚积方可薄发 看网易云信在业内如何“弯道超车”
随着互联网的发展,IM功能正变得越来越重要.以往封闭.单一的沟通方式,逐渐被功能丰富.交互更生动的IM即时通讯取代,以满足新时代个性化和多样化的社交需求.另一方面,随着互联网+上升为国家战略,不少传统 ...
最新文章
- 第7章 PCA与梯度上升法
- 解决Failed to connect session for conifg 故障
- iOS应用开发视频教程笔记(二)My First iOS App
- Android自定义控件入门实践之雷达扫描控件
- notification源码分析_Ceilometer之notification agent代码分析
- HTML/CSS/JavaScript学习笔记【持续更新】
- jQuery学习之二---jq核心
- 填坑 ---- arcgis api for javascript 加载天地图
- keepalived+lvs实现高可用的负载均衡
- 第8章 面向对象高级编程与网络编程
- 【DCVRP】基于matlab蚁群算法求解带容量+距离的车辆路径规划问题【含Matlab源码 1038期】
- Maya: Render Setup System Maya教程:渲染设置系统 Lynda课程中文字幕
- 精美的拟态个人主页源码
- QCC,让在学校的我们感受公司的温暖
- 数据归档,冷热数据分离
- 教室计算机英语怎么读,教室的英语怎么读
- MacBook连接显示器发热的解决方法
- linux私房菜总结(0-1)
- VirtualBox 共享粘贴板失效 安装增强功能时提示 未能加载虚拟光盘到虚拟电脑
- 用计算机搞音乐,用电脑键盘做音乐