iOS集成环信更改头像为自己服务器头像

环信官网提共两种方式我们采用方法二:从消息扩展中获取昵称和头像

昵称和头像的获取:把用户基本的昵称和头像的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  改为你需要的高度即可。

更换头像就是这么简单,用到的或者喜欢的可以点个赞。

你可能感兴趣的:(iOS集成环信更改头像为自己服务器头像)