搞来搞去,环信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;