前提把環(huán)信SDK和EaseUI成功集成后,我集成的環(huán)信SDK版本是2.x,EaseUI版本是3.x,效果圖如下:
B8E912F7B8310F96A1FD2EFC81F12769.png
在繼承自EaseMessageViewController的類里對消息進(jìn)行擴(kuò)展
- - (void)sendTextMessage:(NSString )text withExt:(NSDictionary)ext
其實我們需要的正是這個方法,對這個方法進(jìn)行重寫就OK了,可是環(huán)信卻把它私有化了,于是只能按著下面的的方法進(jìn)行消息擴(kuò)展了,第一部分是EaseUI開源的方法,第二部分是我重寫的方法
1、 環(huán)信EaseUI提供的API的實現(xiàn)
- (void)sendTextMessage:(NSString *)text
{
[self sendTextMessage:text withExt:nil];
}
- (void)sendTextMessage:(NSString *)text withExt:(NSDictionary*)ext
{
EMMessage *message = [EaseSDKHelper sendTextMessage:text
to:self.conversation.conversationId
messageType:[self _messageTypeFromConversationType]
messageExt:ext];
[self _sendMessage:message];
}
2、對環(huán)信得方法進(jìn)行重寫
#pragma mark - EaseMessageViewControllerDataSource
- (id<IMessageModel>)messageViewController:(EaseMessageViewController *)viewController
modelForMessage:(EMMessage *)message
{
id<IMessageModel> model = nil;
model = [[EaseMessageModel alloc] initWithMessage:message];
if (model.isSender) {
NSLog(@"自己發(fā)送");
model.message.ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};
//頭像
//NSLog(@"***++++**%@",model.message);
model.avatarURLPath = @"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0";
//NSLog(@"******%@",model.avatarURLPath);
//昵稱
model.nickname = @"自己的名字";
//頭像占位圖
model.failImageName = @"sunlei.jpg";
}else{
NSLog(@"對方發(fā)送");
//頭像
model.avatarURLPath = model.message.ext[@"avatar"];
//NSLog(@"+++++++______+++%@",model.avatarURLPath);
//昵稱
model.nickname = model.message.ext[@"nick"];
//頭像占位圖
model.failImageName = @"sunlei.jpg";
}
//NSLog(@"+++++++++++%@",model.message);
return model;
}
#pragma mark - 發(fā)送文本消息,對消息進(jìn)行擴(kuò)展
- (void)sendTextMessage:(NSString *)textMessage{
NSLog(@"發(fā)送文本消息");
NSDictionary *ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};;
EMMessage *message = [EaseSDKHelper sendTextMessage:textMessage
to:self.conversation.chatter
messageType:eMessageTypeChatRoom
requireEncryption:NO
messageExt:ext];
[self addMessageToDataSource:message
progress:nil];
}
#pragma mark - 發(fā)送圖片消息
- (void)sendImageMessage:(UIImage *)image{
NSLog(@"發(fā)送圖片消息");
NSDictionary *ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};;
EMMessage *message = [EaseSDKHelper sendImageMessageWithImage:image
to:self.conversation.chatter
messageType:eMessageTypeChatRoom
requireEncryption:NO
messageExt:ext
progress:nil];
[self addMessageToDataSource:message
progress:nil];
}
#pragma mark - 發(fā)送位置消息
- (void)sendLocationMessageLatitude:(double)latitude
longitude:(double)longitude
andAddress:(NSString *)address{
NSLog(@"發(fā)送位置消息");
NSDictionary *ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};;
EMMessage *message = [EaseSDKHelper sendLocationMessageWithLatitude:latitude
longitude:longitude
address:address
to:self.conversation.chatter
messageType:eMessageTypeChatRoom
requireEncryption:NO
messageExt:ext];
[self addMessageToDataSource:message
progress:nil];
}
#pragma mark - 發(fā)送語音消息
- (void)sendVoiceMessageWithLocalPath:(NSString *)localPath
duration:(NSInteger)duration{
NSLog(@"發(fā)送語音消息");
NSDictionary *ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};;
EMMessage *message = [EaseSDKHelper sendVoiceMessageWithLocalPath:localPath
duration:duration
to:self.conversation.chatter
messageType:eMessageTypeChatRoom
requireEncryption:NO
messageExt:ext
progress:nil];
[self addMessageToDataSource:message
progress:nil];
}
#pragma mark - 發(fā)送視頻消息
- (void)sendVideoMessageWithURL:(NSURL *)url{
NSLog(@"發(fā)送視頻消息");
NSDictionary *ext = @{@"avatar":@"http://7xrpiy.com1.z0.glb.clouddn.com/babyShow/1462945613-0",@"nick":@"自己本人的昵稱"};;
EMMessage *message = [EaseSDKHelper sendVideoMessageWithURL:url
to:self.conversation.chatter
messageType:eMessageTypeChatRoom
requireEncryption:NO
messageExt:ext
progress:nil];
[self addMessageToDataSource:message
progress:nil];
}