浏览 SDKs · iOS
平台
SDKsiOS

标记会话已读

使用 iOS SDK 将指定会话的消息标记为已读。

复制

用户打开会话并浏览完当前未读消息后,调用该方法将指定会话标记为已读:

参数说明

参数类型说明
conversationIDNSString *待标记已读的目标会话 ID。
[[OIMManager manager] markConversationMessageAsRead:@"c2c_user1002"
                                          onSuccess:^(NSString * _Nullable data) {
                                              NSLog(@"markConversationMessageAsRead success");
                                          }
                                          onFailure:^(NSInteger code, NSString *message) {
                                              NSLog(@"markConversationMessageAsRead failed: %ld %@", (long)code, message);
                                          }];

状态以 conversationID 为合并标识。

返回结果

成功回调 onSuccess 返回操作结果。

请勿在通知弹窗预览或后台收到静默消息时提前标记已读。标记成功后,当前会话未读数清零并通过 onConversationChanged: 事件广播通知,全局总未读数会联动通过 onTotalUnreadMessageCountChanged: 事件更新(详见获取消息总未读数)。

对于单聊会话,标记已读后对端用户会收到 onRecvC2CReadReceipt: 已读回执事件。应用可根据回执中的对端用户定位单聊会话,再按 msgIDList 中的 clientMsgID 将消息更新为已读状态:

- (void)onRecvC2CReadReceipt:(NSArray<OIMReceiptInfo *> *)items {
    [self mergeC2CReceipts:items ?: @[]];
}

承载该回调的高级消息监听器需要成对添加与移除,完整生命周期见接收消息。群聊中调用本方法仅清理当前用户的会话未读数;群成员级别的群消息已读回执另请参见上报群消息已读。