SDKsiOS
标记会话已读
使用 iOS SDK 将指定会话的消息标记为已读。
用户打开会话并浏览完当前未读消息后,调用该方法将指定会话标记为已读:
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
conversationID | NSString * | 待标记已读的目标会话 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 ?: @[]];
}承载该回调的高级消息监听器需要成对添加与移除,完整生命周期见接收消息。群聊中调用本方法仅清理当前用户的会话未读数;群成员级别的群消息已读回执另请参见上报群消息已读。
这个页面有帮助吗?