之前的項目因爲用戶信息以及好友關係是由服務器管理的,所以在開發的時候用戶的頭像以及用戶的暱稱是放在服務器中管理的。
我的環信版本是最新的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;
}
}