ios環信單聊更換頭像和暱稱

以前的項目由於用戶信息以及好友關係是由服務器管理的,因此在開發的時候用戶的頭像以及用戶的暱稱是放在服務器中管理的。web

個人環信版本是最新的V3.2版本,其餘的版本暫且未知,不過我想模式應該八九不離十.

若是在easuUI中單純的使用,並彈出窗口顯示的是用戶的環信暱稱,和默認頭像(若是沒有設置的話就是一個默認頭像)

/// 彈出單聊界面窗口
EaseMessageViewController *chatController = [[EaseMessageViewController alloc] initWithConversationChatter:@"8001" conversationType:EMConversationTypeChat];

若是頭像跟暱稱放在服務器管理,那麼顯示的就不符合需求了

由於環信的包他們給弄成靜態包了,因此沒法看到EaseMessageViewController.h或EaseMessageViewController.m的代碼。

其實要修改爲本身定義的頭像或者暱稱很簡單。咱們只要建立一個控制器繼承EaseMessageViewController.h,並在自定義的控制器中重寫指定方法就能夠實現頭像和暱稱的控制.另外即便頭像的路徑是在服務器上的,也是能夠的.

/// 重寫EaseMessageViewController.h中的方法.
- (id<IMessageModel>)messageViewController:(EaseMessageViewController *)viewController modelForMessage:(EMMessage *)message
{
    
    if (message.direction == EMMessageDirectionSend){ /// 用戶發送
        //用戶能夠根據本身的用戶體系,根據message設置用戶暱稱和頭像
        id<IMessageModel> model = nil;
        model = [[EaseMessageModel alloc] initWithMessage:message];
        model.avatarImage = [UIImage imageNamed:@"EaseUIResource.bundle/user"];//默認頭像
        NSString *url = [NSString ddl_webImageRequestWithUrl:self.userInformation.url];
        model.avatarURLPath = url;//頭像網絡地址
        model.nickname = self.userInformation.username;//用戶暱稱
        return model;
    } else {
        //用戶能夠根據本身的用戶體系,根據message設置用戶暱稱和頭像
        id<IMessageModel> model = nil;
        model = [[EaseMessageModel alloc] initWithMessage:message];
        model.avatarImage = [UIImage imageNamed:@"EaseUIResource.bundle/user"];//默認頭像
        NSString *url = [NSString ddl_webImageRequestWithUrl:self.friend_url];
        model.avatarURLPath = url;//頭像網絡地址
        model.nickname = self.friend_username;//用戶暱稱
        return model;
    }   
}
相關文章
相關標籤/搜索