单群聊已读回执
IMLib SDK 从 1.3.0 版本开始支持该功能。
已读回执功能可以让消息的发送方知道消息是否被对方已读。
- 在单聊场景下,当接收方已读消息后,可以主动发送已读回执给发送方,发送方通过监听已读回执消息来获得已读通知。
- 在群聊场景下,当一条消息发送到群组后,发送方可以在消息发送完成后主动发起已读回执请求。群组中的其他成员在读到这条消息后,可以对请求进行响应。发送方通过监听已读回执响应结果来获知哪些群成员已读了这条消息。
SDK 提供了一个已读回执监听器 MessageReadReceiptListener
,用于处理单聊、 群聊已读回执相关的事件通知。
单聊已读回执
单聊具体流程描述:
- 发送方通过 SDK 发送任何的记录未读的消息,比如文本、图片等。
- 接收方进入聊天页面看到最新消息。
- 接收方将当前会话最后一条消息的 sentTime 作为时间戳参数,调用 IMEngine.sendReadReceiptMessage() 接口发送单聊已读回执。
- 发送方收到单聊已读回执之后, SDK 将回执中时间戳之前的本地消息都置为已读(SentStatus 设置为 Read),然后触发 MessageReadReceiptListener.onMessageReadReceiptReceived
- 发送方在聊天页面收到 MessageReadReceiptListener.onMessageReadReceiptReceived 之后,把时间戳之前的消息 UI 都置为已读。
发送单聊已读回执
消息接收方在阅读过某条消息后,需要主动发送已读回执给发送方。调用 sendReadReceiptMessage
方法时需要传入指定消息的发送时间(message.sentTime
),或者传入会话最后一条消息的发送时间(conversation.sentTime
)。
接口原型
TypeScript
public sendReadReceiptMessage(conId: ConversationIdentifier, timestamp: number): Promise<IAsyncResult<void>>;