如何在Quickblox中集成标记消息功能以阅读邮件

时间:2019-07-11 11:10:50

标签: objective-c quickblox

我正在使用Chatviewcontroller中的Quickblox来显示聊天详细信息。如果邮件已读,我想将邮件标记为已读。

我看到QMChatService.m类中有一个可用的方法

- (void)chatDidReadMessageWithID:(NSString *)messageID
                    dialogID:(NSString *)dialogID
                    readerID:(NSUInteger)readerID{

------------
if ([self.multicastDelegate respondsToSelector:@selector(chatService:didUpdateMessage:forDialogID:)]) {
            [self.multicastDelegate chatService:self didUpdateMessage:message forDialogID:dialogID];
        }
}

我在这里看到chatService:didUpdateMessage:的方法也被称为另一种情况,因此无法识别如何标记消息。

1 个答案:

答案 0 :(得分:0)

我已经解决了 QBChatMessage具有三个属性readIDs(阅读消息的用户的数组),deliveredIDs(发送消息的用户的数组),收件人ID。

下面是ChatViewController.m中的完整代码

-(无效)collectionView:(QMChatCollectionView *)collectionView       configureCell:(UICollectionViewCell *)单元格           forIndexPath:(NSIndexPath *)indexPath {

QBChatMessage * message = [self.chatDataSource messageForIndexPath:indexPath];

if (message.senderID == [QBSession currentSession].currentUser.ID){

    NSString *imageName = @"sent.png";
    if((self.dialog.type == QBChatDialogTypePrivate) && [message.readIDs containsObject:@(message.recipientID)]) {
        imageName = @"read.png";
    }
    else if((self.dialog.type == QBChatDialogTypePrivate) && [message.deliveredIDs containsObject:@(message.recipientID)]) {
        imageName = @"received.png";
    }
    [chatCell markImageView].image = [UIImage imageNamed:imageName];
}

}

这里markImageView是该单元格采用的UIImagview属性。