项目中集成了环信即时通讯,但是项目需要自定义消息类型,看环信发送消息方法,在发送消息的时候可以附加自定义的内容。
下面我将拿微信中名片为例来介绍:
确定发送方式:
首先需要与Android开发人员沟通发送什么类型消息的时候传递,环信sdk中封装的任何消息都是可以附加自定义内容的,在这里我们定义的是在发送文本消息的时候传递,也就是说发送自定义的名片等于发送的是文本消息。
确定字段:
先看自定义消息中所显示的内容:头像、昵称、效应号;我们定义的字典字段为:nickname、user_pic、num这三个,由于在点击这条消息的时候需要跳转到这个人的个人信息页面,所有又应该加上user_id,我们项目中所自定义的 消息不只一种还有其他的消息,这样我们又需要加上一个type来区分,最终附加字段为: nickname、user_pic、num、user_id、type
发送消息:
在选择完联系人后,回调信息到聊天页面发送消息
NSDictionary *dict = @{@"user_id":user_id,@"nickname":nickname,@"user_pic":user_pic,@"num":number,@"type":@"0"};
[self sendTextMessage:@"[效应名片]" withExt:dict];
定义UI
每条消息都是显示都是一个Cell,Cell要继承EaseBaseMessageCell,聊天的Cell都是有气泡的,显示的信息都是在气泡上,也就是说,我们只需要定义一个View然后放到气泡上,并且修改气泡的大小,就可以了。
- 定义UI页面
创建一个创建一个继承UIView的类,在这个类上定义自己需要的UI,也就是下图所显示的内容
下面是我定义的LCChatXiaoYingCardView.m代码
@interface LCChatXiaoYingCardView ()
/**
头像
*/
@property (strong, nonatomic) UIImageView *iconImageView;
/**
昵称
*/
@property (strong, nonatomic) UILabel *nameLabel;
/**
效应号
*/
@property (strong, nonatomic) UILabel *numberLabel;
@end
@implementation LCChatXiaoYingCardV