1. 程式人生 > >iOS-環信3.0聯絡人列表和未讀訊息提示,頭像和暱稱設定,訊息實時更新

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;