更新时间: 2020-08-26
# 功能描述
开发者可使用此功能实现消息已读未读功能的展示。
当 A 给 B 发送了一条消息,B 在未阅读之前 A 用户显示未读,当 B 用户阅读并调用发送回执接口之后,A 用户可在监听回执中收到通知,此时可根据对应的数据内容将发送的消息显示为已读。
# 发送回执
当收到一条消息时,可以通过以下方法发送一条回执给发送方。
# 参数说明
输入参数说明
参数 | 类型 | 必填 | 说明 |
---|---|---|---|
conversationType | RCConversationType (opens new window) | 是 | 会话类型,单聊传入 ConversationType_PRIVATE |
targetId | NSString | 是 | 消息发送方的 userId |
timestamp | long long | 是 | 可配置的参数 |
successBlock | Block | 是 | 发送成功的回调 |
errorBlock | Block | 是 | 发送失败的回调 |
返回参数说明
error 说明:
回调参数 | 回调类型 | 说明 |
---|---|---|
status | RCErrorCode | 发送失败的错误码 |
# 代码示例
[[RCIMClient sharedRCIMClient] sendReadReceiptMessage:ConversationType_PRIVATE targetId:@"targetId" time:sentTime success:nil error:nil];
已复制
1
2
3
4
5
2
3
4
5
# 接收回执
收到消息已读回执之后,IMLib 会分发一个名为 RCLibDispatchReadReceiptNotification
的通知,开发者收到这个消息之后可以更新这个会话中 messageTime 以前的消息 UI 为已读(底层数据库消息状态已经改为已读)。
# 参数说明
Notification 的 object 为 nil,userInfo 为 NSDictionary 对象。
NSDictionary 对象的 key 值说明:
key值 | 类型 | 说明 |
---|---|---|
cType | NSNumber | 会话类型 |
messageTime | NSNumber | 已阅读的最后一条消息的sendTime |
tId | NSString | A 的 targetID |
fId | NSString | B 的 targetId |
# 代码示例
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveReadReceiptNotification:) name:RCLibDispatchReadReceiptNotification object:nil];
已复制
1
2
3
4
2
3
4
- (void)didReceiveReadReceiptNotification:(NSNotification *)notification { RCConversationType conversationType = (RCConversationType)[notification.userInfo[@"cType"] integerValue]; long long readTime = [notification.userInfo[@"messageTime"] longLongValue]; NSString *targetId = notification.userInfo[@"tId"]; NSString *senderUserId = notification.userInfo[@"fId"]; }
已复制
1
2
3
4
5
6
7
2
3
4
5
6
7