注册

集成环信3.0 处理UI上展示昵称 头像的方法

 因为遇到了不少用户问到了这个问题,所以在这里总结一下。

首先明确一下,环信只是即时通讯的消息引擎。环信本身不提供用户体系,环信既不保存任何APP业务数据,也不保存任何APP的用户信息。

根据环信ID来绑定用户的昵称,头像,方便维护。 环信3.0 demo中,是用parse来管理昵称,头像的(parse是管理昵称,头像的一个三方库,将头像,昵称上传到parse服务器,在从parse服务器获取),从自己服务器获取的话就按照下面的方法参考一下吧。


1.  服务器维护昵称,头像的方案先看下这个链接: http://docs.easemob.com/im/490integrationcases/10nickname

2. 从自己服务器获取到用户的昵称,头像后,会话列表类的替换,在EaseConversationCell.m类,- (void)setModel:(id<IConversationModel>)model中              [self.avatarView.imageView sd_setImageWithURL:[NSURL URLWithString:_model.avatarURLPath] placeholderImage:_model.avatarImage];   这个方法就是来展示头像的

3. 聊天类的替换,在EaseBaseMessageCell.m类,- (void)setModel:(id<IMessageModel>)model中      
if (model.isSender) {
        UIImage *placeholderImage = [UIImage imageNamed:@"123"];
        self.avatarView.image = placeholderImage;
    } else {
        if (model.avatarURLPath) {
            [self.avatarView sd_setImageWithURL:[NSURL URLWithString:model.avatarURLPath] placeholderImage:model.avatarImage];
        } else {
            self.avatarView.image = model.avatarImage;
        }
    }
if (model.isSender) 我自己加的判断 区分发送者和接受者的头像(isSender判断是不是当前登录者),如果想在这个类中想要获取到对方的环信ID,那么引入 #import <EMMessage.h>头文件,    EMMessage *message = model.message;   NSString *username = message.from;就可以获取到了,然后自己在根据环信ID自己做处理,展示。  如果是群聊的话,想要获取到群成员在群里发送消息人的环信ID,通过message.groupSenderName 获取到。

4.联系人类的替换,在EaseUserCell.m类,- (void)setModel:(id<IUserModel>)model中,self.titleLabel.text = _model.buddy.username;          [self.avatarView.imageView sd_setImageWithURL:[NSURL URLWithString:_model.avatarURLPath] placeholderImage:_model.avatarImage];  


 
具体的到3.0demo中 自己看一下吧, 仅仅给提供个参考。

5 个评论

写的不错,”环信只是即时通讯的消息引擎。环信本身不提供用户体系,环信既不保存任何APP业务数据,也不保存任何APP的用户信息。“ 赞赏一个!
官方说了半天也没说明: ext到底写在哪个位置
3.0demo中,写在EaseMessageViewController.m类,比如说发文字消息,- (void)sendTextMessage:(NSString *)text withExt:(NSDictionary*)ext 给ext赋值就可以了(demo中发送消息的方法都是封装好的),是字典格式的。 然后再接收在线消息的回调函数中,- (void)didReceiveMessage:(EMMessage *)message; 通过message.ext就可以获取到扩展内容, 在接收离线消息的回调函数中也可以获取到,- (void)didReceiveOfflineMessages:(NSArray *)offlineMessages; 离线消息是一个数组,用EMMessage从数组中取出消息,然后通过实例化的消息中 通过ext属性取出来扩展内容,与获取在线消息的扩展字段一样。
看一下这篇博客 http://blog.csdn.net/lala2231/article/details/50636378 有详细的分析
为什么我的ext一直提示为空呢?怎么解决

要回复文章请先登录注册