我正在使用Quick blox,我下载了使用QMServices
,MessageStatusStringBuilder
的示例应用(https://github.com/QuickBlox/quickblox-ios-sdk/tree/master/sample-chat)。
我在ChatViewController
中使用QBChatMessage
类方法来获取消息的状态(读取/传递/发送)(此处此消息不是字符串,而是ChatViewController
的实例)在QMChatServiceDelegate
中,以便在调用DialogsViewController
回调时显示消息状态。
我还要求在每个对话框下的DialogsViewController lastTextMessage
中显示最后一条消息的状态(已读/已发送/已发送)。
但在QBChatMessage
中是一个字符串,但不是QMChatServiceDelegate
个实例。
如何更新此消息状态?
一个加分点是,我也会在DialogsViewController
中从此{{1}}获得回调,即使我找不到该消息的状态。
那么如何处理呢?
答案 0 :(得分:0)
首先,您应该使用date_send
作为键,并使用对话框的lastMessageDate
作为值来获取包含扩展请求的消息。然后使用MessageStatusStringBuilder
类的实例,您可以获得最后一条消息的状态。
QBChatDialog *dialog = ... // your dialog
QBResponsePage *resPage = [QBResponsePage responsePageWithLimit:1 skip:0];
NSMutableDictionary *extendedRequest = @{@"date_sent" : [NSString stringWithFormat:@"%tu", (NSUInteger)[dialog.lastMessageDate timeIntervalSince1970]]}.mutableCopy;
[QBRequest messagesWithDialogID:dialog.ID extendedRequest:extendedRequest forPage:resPage successBlock:^(QBResponse *response, NSArray *messages, QBResponsePage *responcePage) {
NSLog(@"status = %@",[self.stringBuilder statusFromMessage:[messages firstObject]]);
} errorBlock:^(QBResponse *response) {
NSLog(@"error: %@", response.error);
}];