您的位置:首页 > 移动开发 > IOS开发

环信头像和昵称显示问题 (添加消息扩展)--本人已实现效果

2017-03-31 18:15 471 查看
环信技术客服 提供的链接 头像和昵称的处理,
http://www.jianshu.com/p/1a9eb12f8230


在这个类中 "EaseMessageViewController.h"

#pragma mark - public

// 搜这个这个 做响应的 修改

- (NSArray *)formatMessages:(NSArray *)messages

{

    NSMutableArray *formattedArray = [[NSMutableArray alloc] init];

    if ([messages count] == 0) {

        return formattedArray;

    }

    

    for (EMMessage *message in messages) {

        //Calculate time interval

        CGFloat interval = (self.messageTimeIntervalTag - message.timestamp) / 1000;

        if (self.messageTimeIntervalTag < 0 || interval > 60 || interval < -60) {

            NSDate *messageDate = [NSDate dateWithTimeIntervalInMilliSecondSince1970:(NSTimeInterval)message.timestamp];

            NSString *timeStr = @"";

            

            if (_dataSource && [_dataSource respondsToSelector:@selector(messageViewController:stringForDate:)]) {

                timeStr = [_dataSource messageViewController:self stringForDate:messageDate];

            }

            else{

                timeStr = [messageDate formattedTime];

            }

            [formattedArray addObject:timeStr];

            self.messageTimeIntervalTag = message.timestamp;

        }

        

        //Construct message model

        id<IMessageModel> model = nil;

        if (_dataSource && [_dataSource respondsToSelector:@selector(messageViewController:modelForMessage:)]) {

            model = [_dataSource messageViewController:self modelForMessage:message];

            

        }

        else{

、、、、、、、、、、、、、、添加以下代码    做响应的处理-------------

            model = [[EaseMessageModel alloc] initWithMessage:message];

            

            NSString *loginUserName = [[EMClient sharedClient] currentUsername];

            if ([model.message.from isEqualToString:loginUserName]) {

               // model.avatarImage = [UIImage imageNamed:@"EaseUIResource.bundle/user"];

                 model.avatarURLPath = [NSUSERDEFAULTS valueForKey:kUserIcon];

                model.failImageName = @"imageDownloadFail";

                model.nickname = [NSString stringWithFormat:@"%@",[NSUSERDEFAULTS valueForKey:kUserName]] ;

            }else{

               // model.avatarImage =  [UIImage imageNamed:@"icon_alipay"];

                NSString *avatarURLPathStr = [NSUSERDEFAULTS valueForKey:KDriverHeader];

                

                model.failImageName = @"imageDownloadFail";

               

                

                if (avatarURLPathStr == nil ||avatarURLPathStr == NULL) {

                    model.avatarImage = [UIImage imageNamed:@"EaseUIResource.bundle/user"];

                }else{

                    model.avatarURLPath = [NSUSERDEFAULTS valueForKey:KDriverHeader];

                }

                NSString *nicknameStr = [NSUSERDEFAULTS valueForKey:kDriverName];

                NSLog(@"%@",nicknameStr);

                if (nicknameStr == nil || nicknameStr == NULL) {

                    

                }else{

                   model.nickname =[NSString stringWithFormat:@"%@",[NSUSERDEFAULTS valueForKey:kDriverName]];

                }

               

            }

、、、、、、、、、、、、、、、、、、到此为止 。。。。。。。。。。。。。。。

         }

        if (model) {

            [formattedArray addObject:model];

        }

    }

    

    return formattedArray;

}

//  在这个 方法中。。。。

- (void)_sendMessage:(EMMessage *)message

{

    //添加消息扩展(传送头像 和 昵称)

    NSMutableDictionary *dictExt = [NSMutableDictionary dictionaryWithDictionary:message.ext];

    [dictExt setValue:[NSUSERDEFAULTS objectForKey:kUserName] forKey:@"nick"];

    [dictExt setValue:[NSUSERDEFAULTS objectForKey:kUserIcon] forKey:@"avatar"];

    message.ext = dictExt;
   、、、、、、、、加上以上代码。。。。

    if (self.conversation.type == EMConversationTypeGroupChat){

        message.chatType = EMChatTypeGroupChat;

    }

    else if (self.conversation.type == EMConversationTypeChatRoom){

        message.chatType = EMChatTypeChatRoom;

    }

    

    [self addMessageToDataSource:message

                        progress:nil];

    

    __weak typeof(self) weakself = self;

    [[EMClient sharedClient].chatManager sendMessage:message progress:^(int progress) {

        if (weakself.dataSource && [weakself.dataSource respondsToSelector:@selector(messageViewController:updateProgress:messageModel:messageBody:)]) {

            [weakself.dataSource messageViewController:weakself updateProgress:progress messageModel:nil messageBody:message.body];

        }

    } completion:^(EMMessage *aMessage, EMError *aError) {

        if (!aError) {

            [weakself _refreshAfterSentMessage:aMessage];

        }

        else {

            [weakself.tableView reloadData];

        }

    }];

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐