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;