UIKit iOS v3
UIKit iOS
UIKit
iOS
Home
/
UIKit
/
iOS
This is the new Docs for UIKit v3 for iOS. To see the previous Docs, click here.

Delivery receipt

Delivery receipt is a feature that allows a user to know whether their messages have been successfully delivered to other users in the channel. Once the recipients in the channel receive a message notification or see the message in the channel list view, it will be marked as delivered. The delivery receipt appears in each message cell of the SBUGroupChannelViewController class as well as in each channel cell in the listComponent of the SBUGroupChannelListViewController class. If the sender's message has been delivered to all recipients of the channel, a double-tick icon will appear above the message’s timestamp. Delivery receipt is only visible to the sender of the message.

In a group channel view, the delivery status of a message is displayed through the stateImageView of SBUMessageStateView, which is either in the SBUUserMessageCell class or the SBUFileMessageCell class depending on the type of the message.

Note : In order to use this feature, you must first create a channel. To learn how to allow users to chat in a channel, refer to Chat in a group channel.

You can also display the delivery receipt status in the channel list. If the sender's message has been delivered to all recipients of the channel, a double-tick icon will appear next to the message’s timestamp, which is only visible to the sender of the message.


How to use

While the delivery receipt feature is turned on by default in the SBUGroupChannelViewController class, you need to set isChannelListMessageReceiptStateEnabled to true in the SBUGroupChannelListViewController class. Implement the code below to turn on the delivery receipt in a channel list view.

SBUGlobals.isChannelListMessageReceiptStateEnabled = true

Prerequisite

To use delivery receipt, Notification Service Extension should be implemented in advance to receive the content of your remote notifications before they are displayed on the users' devices, allowing the SDK to update the notification payload.

Requirements

To implement Notification Service Extension to your iOS client app, create an App Group to combine your app and extension.

  • Your app is developed with iOS 10.0 or later.
  • A remote notification is implemented and configured to display an alert.
  • The payload received from the remote notification includes the mutable-content key with the value set to 1.

Note: To enable mutable-content, go to the Settings > Application > Notifications > Push notification credentials on your dashboard. To learn more about the implementation and settings of Notification Service Extension, see the delivery receipt page in Chat SDK.


Customize the UI for delivery receipt

You can customize the UI for delivery receipt using the SBUMessageCellTheme in the SBUTheme and through the iconDoneAll property of the SBUIconSet.

SBUMessageCellTheme

The following table shows a customizable theme property of delivery receipt in a group channel view.

CategoryPropertyDescription

Message state

deliveryReceiptStateColor

The color of the delivery receipt state element.

SBUChannelCellTheme

The following table shows a customizable theme property of delivery receipt in each channel cell in a channel list view.

CategoryPropertyDescription

Channel state

deliveryReceiptStateColor

The color of the delivery receipt state.

SBUIconSet

The following table shows a customizable delivery receipt icon.

Icon nameImageDescription

icon_done_all

An icon used to indicate that a message has been delivered to all members of a channel.

Note : The same double-tick icon is used for both read receipt and delivery receipt. The only difference is the color of the icon. Default icon colors used for delivery receipt are onlight_03 for Light theme, and ondark_03 for Dark theme.