环信官网提共两种方式我们采用方法二:从消息扩展中获取昵称和头像
昵称和头像的获取:把用户基本的昵称和头像的URL放到消息的扩展中,通过消息传递给接收方,当收到一条消息时,则能通过消息的扩展得到发送者的昵称和头像URL。
1.首先需要在消息实体信息中 携带发消息者头像以及昵称。
在EaseMessageViewController 类中 找到
- (void)sendMessage:(EMMessage*)message isNeedUploadFile:(BOOL)isUploadFile;这个方法 添加用户信息实体 如下代码。
NSMutableDictionary *Muext = [NSMutableDictionary dictionaryWithDictionary:message.ext];
[MuextsetObject:(@"nickname") forKey:@"nickname"];
[MuextsetObject:(@"header") forKey:@"header"];
message.ext= Muext;
第一步携带信息完成。
2.需要找到会话界面取出携带信息用来展示ui
在EaseBaseMessageCell 中 找到- (void)setModel:(id)model;这个方法 其中有两步赋值图片跟昵称的地方取出 消息实体 NSDictionary* dic = model.message.ext; 将取出来的值赋上去 ,赋值如下代码:
[self.avatarView sd_setImageWithURL:[NSURL URLWithString:dic[@"header"]] placeholderImage:model.avatarImage];
_nameLabel.text= dic[@"nickname"];
就完成了聊天室内头像更换。
3.会话列表头像同步服务器头像
跟聊天室一样的道理 还是取出携带消息体来展示,不同的是会话列表不能直接取出消息体,在EaseConversationCell中 找到- (void)setModel:(id)model;通过“收到的对方发送的最后一条消息,也是会话里的最新消息”取出model 中的携带信息实体
NSDictionary* dic = model.conversation.lastReceivedMessage.ext; 进行赋值就可以了
调整会话列表高度在.h 中把默认的60 改为你需要的高度即可。
更换头像就是这么简单,用到的或者喜欢的可以点个赞。