iOS-环信3.0联系人列表和未读消息提示,头像和昵称设置,消息实时更新

搞来搞去,环信3.0也挺简单的.一步步说

1.联系人列表

新建类LianxirenListViewController集成自EaseUsersListViewController.

在LianxirenListViewController类里边可以自由设置联系人tabview,自定义cell,EaseUsersListViewController类里已经有刷新功能,在自己的类里边可以省去.

2.添加未读消息提示

NSArray * allCon = [[EMClient sharedClient].chatManager getAllConversations];

//获取所有的聊天

          for (EMConversation * con in allCon) {

                        NSLog(@"%@",con.conversationId);//聊天id

                        EMConversation * conKOKO = [[EMClient sharedClient].chatManager getConversation:con.conversationId type:EMConversationTypeChat createIfNotExist:YES];

                        NSLog(@"未读消息数量:%d",conKOKO.unreadMessagesCount);

                        NSLog(@"%@",conKOKO.latestMessage);

//循环里边是通过判断聊天人id和聊天id是不是同一个,如果是的话在自己的model里添加未读消息数量.

                        for (HomeModel * modelKO in _tableData) {

                            if (conKOKO.unreadMessagesCount != 0 && [conKOKO.conversationId isEqualToString:modelKO.im_username]) {

                                [modelKO setUnreadMsgCount:conKOKO.unreadMessagesCount];

                            }

//                            if ([modelKO.im_username isEqualToString:conKOKO.conversationId]) {

//                            }

                        }

                    }

3.设置头像和昵称

在EaseBaseMessageCell类中找setModel方法

#pragma mark - setter

- (void)setModel:(id<IMessageModel>)model

{

    [super setModel:model];

    

    EduUserInfoCenter * manager = [EduUserInfoCenter managerCenter];

    LoginModel * loginModel = [manager valueWithKey:USER_MODEL];

//我是从联系人列表中获取头像和名字,存入NSUserDefaults,然后在这里取出显示出来.

    NSString * img = [[NSUserDefaults standardUserDefaults] objectForKey:@"TEA_IMG"];

    NSString * name = [[NSUserDefaults standardUserDefaults] objectForKey:@"TEA_NAME"];

    if (model.isSender) {

//设置自己的头像昵称

        [self.avatarView sd_setImageWithURL:[NSURL URLWithString:loginModel.headImg] placeholderImage:[UIImage imageNamed:@"占位图"]];

        _nameLabel.text = loginModel.nickname;

    } else {

//设置对方的头像昵称

        if (img) {

            [self.avatarView sd_setImageWithURL:[NSURL URLWithString:img] placeholderImage:model.avatarImage];

            _nameLabel.text = name;

        } else {

            self.avatarView.image = model.avatarImage;

            _nameLabel.text = model.nickname;

        }

    }

//需求:在联系人列表实现消息实时更新

在列表界面注册代理EMChatManagerDelegate,EMClientDelegate

    [[EMClient sharedClient].chatManager addDelegate:self delegateQueue:nil];

    实现代理方法

- (void)messagesDidReceive:(NSArray *)aMessages;

猜你喜欢

转载自blog.csdn.net/u012498386/article/details/84532778