Skip to main content

Read Receipt

IMKit provides read receipt functionality for one-to-one chat and group chat. You can use read receipts to determine whether the recipient has read your message.

The built-in chat UI in IMKit enables read receipts by default. In one-to-one chat, message read status updates automatically. In group chat, message senders need to manually request read status updates on the chat UI.

Read Receipt Toggle

IMKit enables read receipts by default for both one-to-one and group chats.

You can modify supported conversation types. For example, configure read receipts to work only in one-to-one chat (group chat won't support this feature). Pass an empty array to disable read receipts:

RCKitConfigCenter.message.enabledReadReceiptConversationTypeList = @[ @(ConversationType_PRIVATE) ];

One-to-One Chat Read Receipt

In one-to-one chat, senders receive real-time updates when messages are read. The IMKit built-in UI displays read status in two locations:

  • Chat UI (message list): For senders, a checkmark appears at the bottom left of messages indicating they've been read.
  • Conversation list: The conversation list shows previews of the last message in each conversation. If the last one-to-one chat message is read by the recipient, a checkmark appears at the bottom right of the corresponding conversation entry in the sender's list.

alt(width=250)

By default, the SDK displays read status as a checkmark icon for text messages. To show "Read" or "Unread" text instead, modify the message cell before display. See Customization in Chat UI.

Group Chat Read Receipt

tip

IMKit's group chat read receipt feature currently only supports text messages.

After sending a group message, senders can request read receipt data within 120 seconds. On the chat UI, a checkmark button (read receipt request button) appears at the bottom left of messages. Only after clicking this button will IMKit request read receipts. Upon receiving the results, IMKit refreshes the UI to display "Read by n members".

alt(width=250) alt(width=250)