在QuickBlox iOS中将所有消息标记为已读

3
我正在使用QuickBlox开发一个聊天应用程序。
有一个API返回聊天对话框,其中包含最后发送的消息和未读消息计数。
我的问题是如何将消息标记为已读。我已经获得了可以工作的代码,例如:
[QBChat markMessagesAsRead:arrMessages dialogID:dialogId delegate:self]; // arrMessages is the array of message ids

它运行良好,但有时会出现某些消息被跳过的情况,并始终以未读消息出现在QBChatDialog中。

所以我的问题是,我应该怎么做才能将它的所有消息标记为已读。

或者

我如何获取那些未读的特定跳过的消息。因为它调用api获取消息时只提供最后一个而不是特定跳过的消息。

1个回答

3
你可以将所有消息标记为已读,只需将数组参数传递为nil。
[QBChat markMessagesAsRead:nil dialogID:dialogId delegate:self];

在这种情况下,您所有的消息都应标记为已读


在QuickBlox中是否有一种方法可以仅获取未读消息,例如如果我错过了5条消息并且它们不是最后一条,那么我能否只获取这5条未读消息。 - haresh
1
@ Igor,使用最新的Quickblox iOS SDK更新后,它更改了通过QBRequest请求标记消息为已读的方式,像这样:+ (QBRequest *)markMessagesAsRead:(NSSet *)messageIDs dialogID:(NSString *)dialogID successBlock:(void(^)(QBResponse *response))successBlock errorBlock:(QBRequestErrorBlock)errorBlock。但是,如果我在NSSet的位置传递nil,则会出现错误。错误信息如下:错误原因:{ code = "<null>"; message = "未找到资源"; } - Hemang

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接