【问题标题】:Mark all messages read in QuickBlox iOS在 QuickBlox iOS 中标记所有已读消息
【发布时间】:2015-03-26 04:15:32
【问题描述】:

我正在QuickBlox 的帮助下开发一个聊天基础应用程序。

有一个 API 可以返回最后发送的消息和未读消息计数所在的聊天对话框。

我的问题是将消息标记为已读。为此,我得到了类似的工作代码

[QBChat markMessagesAsRead:arrMessages dialogID:dialogId delegate:self]; // arrMessages is the array of message ids

它运作良好,但有时会发生一些消息被跳过并且它总是以未读消息的形式出现在QBChatDialog

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

或者

我怎样才能获得那些未读的特定跳过消息。当它调用 api 来获取消息时,它只给出最后一个而不是跳过的消息。

【问题讨论】:

    标签: ios objective-c chat quickblox


    【解决方案1】:

    您可以将所有消息标记为已读,只需将 nil 作为数组参数传递

    [QBChat markMessagesAsRead:nil dialogID:dialogId delegate:self];
    

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

    【讨论】:

    • QuickBlox 中是否有任何方法可以仅获取未读消息,例如我错过了 5 条消息并且不是最后一条消息,所以我只能获取那 5 条未读消息。
    • @Igor,随着最新的 iOS 版 quickblox sdk 更新,它改变了在 QBRequest 中请求 markMessagesRead 的方式,就像这样,+ (QBRequest *)markMessagesAsRead:(NSSet *)messageIDs dialogID:(NSString *)dialogID successBlock:(void(^)(QBResponse *response))successBlock errorBlock:(QBRequestErrorBlock)errorBlock。但是如果我通过 nil 代替 NSSet 它会出错。带有以下消息Error reasons:{ code = "<null>"; message = "Resource not found";}
    猜你喜欢
    • 1970-01-01
    • 2014-10-26
    • 2022-01-16
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多