如何使用Quick blox示例更新ChatList中的消息状态?

时间:2016-05-02 11:35:41

标签: ios chat quickblox

我正在使用Quick blox,我下载了使用QMServicesMessageStatusStringBuilder的示例应用(https://github.com/QuickBlox/quickblox-ios-sdk/tree/master/sample-chat)。

我在ChatViewController中使用QBChatMessage类方法来获取消息的状态(读取/传递/发送)(此处此消息不是字符串,而是ChatViewController的实例)在QMChatServiceDelegate中,以便在调用DialogsViewController回调时显示消息状态。

我还要求在每个对话框下的DialogsViewController lastTextMessage中显示最后一条消息的状态(已读/已发送/已发送)。 但在QBChatMessage中是一个字符串,但不是QMChatServiceDelegate个实例。

如何更新此消息状态?

一个加分点是,我也会在DialogsViewController中从此{{1}}获得回调,即使我找不到该消息的状态。

那么如何处理呢?

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);

  }];