如何使用 Quick blox 示例更新 ChatList 中的消息状态?
How to update message status in ChatList using Quick blox sample?
我正在使用 Quick blox,我下载了使用 QMChatViewController
、QMServices
.
的示例应用程序 (https://github.com/QuickBlox/quickblox-ios-sdk/tree/master/sample-chat)
我正在使用 ChatViewController
中的 MessageStatusStringBuilder
class 方法来获取消息的状态 (read/delivered/sent)(这里消息不是字符串,它是一个实例QBChatMessage
) 在 ChatViewController
中,以便在调用 QMChatServiceDelegate
回调时显示消息状态。
我还需要在每个对话框下显示 DialogsViewController
中最后一条消息的状态 (read/delivered/sent)。
但是在 DialogsViewController lastTextMessage
中是一个字符串而不是 QBChatMessage
实例。
如何更新此消息状态?
一个优点是我也会在 DialogsViewController
中从这个 QMChatServiceDelegate
获得回调,即使我无法从中找到消息的状态。
那么如何处理呢?
首先,您应该使用 date_send
作为键并使用对话框的 lastMessageDate
作为值来获取带有扩展请求的消息。然后使用 MessageStatusStringBuilder
class 的实例,您可以获得最后一条消息的状态。
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);
}];
我正在使用 Quick blox,我下载了使用 QMChatViewController
、QMServices
.
我正在使用 ChatViewController
中的 MessageStatusStringBuilder
class 方法来获取消息的状态 (read/delivered/sent)(这里消息不是字符串,它是一个实例QBChatMessage
) 在 ChatViewController
中,以便在调用 QMChatServiceDelegate
回调时显示消息状态。
我还需要在每个对话框下显示 DialogsViewController
中最后一条消息的状态 (read/delivered/sent)。
但是在 DialogsViewController lastTextMessage
中是一个字符串而不是 QBChatMessage
实例。
如何更新此消息状态?
一个优点是我也会在 DialogsViewController
中从这个 QMChatServiceDelegate
获得回调,即使我无法从中找到消息的状态。
那么如何处理呢?
首先,您应该使用 date_send
作为键并使用对话框的 lastMessageDate
作为值来获取带有扩展请求的消息。然后使用 MessageStatusStringBuilder
class 的实例,您可以获得最后一条消息的状态。
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);
}];