插入消息
插入消息的接口只会将消息插入本地数据库,不会向远端发送,所以卸载重装或者换端登录时插入的消息不会从远端同步到本地数据库。
插入发送消息
在本地数据库被插入一条对外发送的消息。返回插入成功的 RCMessage
。
提示
此方法如果 sentTime 有问题会影响消息排序,慎用!
RCTextMessage *content = [RCTextMessage messageWithContent:@"测试文本消息"];
[[RCCoreClient sharedCoreClient] insertOutgoingMessage:ConversationType_PRIVATE
targetId:@"targetId"
sentStatus:SentStatus_SENT
content:content
sentTime:sentTime
completion:^(RCMessage * _Nullable message) {
}];
参数 | 类型 | 说明 |
---|---|---|
conversationType | RCConversationType | 会话类型。 |
targetId | NSString | 会话 ID。 |
sentStatus | RCSentStatus | 发送状态。 |
content | RCMessageContent | 消息的内容。 |
sentTime | long long | 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入)。 |
completion | block | 完成回调。 |
插入接收消息
在本地数据库被插入一条接收的消息。返回插入成功的 RCMessage
。
提示
- SDK 从 5.6.8 版本开始,支持在插入接收消息时指定 RCReceivedStatusInfo 属性。如果低于 5.6.8 版本,请选用指定 [RCReceivedStatus] 属性的接口。
- sentTime 会影响消息排序,请务必保证 sentTime 正确性。您也可以使用不指定 sentTime 的接口。
RCTextMessage *content = [RCTextMessage messageWithContent:@"测试文本消息"];
[[RCCoreClient sharedCoreClient] insertIncomingMessage:ConversationType_PRIVATE
targetId:@"targetId"
senderUserId:@"senderUserId"
receivedStatusInfo:receivedStatusInfo
content:content
sentTime:sentTime
completion:^(RCMessage * _Nullable message) {
}];
参数 | 类型 | 说明 |
---|---|---|
conversationType | RCConversationType | 会话类型,单聊传入 ConversationType_PRIVATE |
targetId | NSString | Target ID 用于标识会话,称为目标 ID 或会话 ID。注意,因为单聊业务中始终使用对端用户 ID 作为标识本端会话的 Target ID,因此在单聊会话中插入本端接收的消息时,Target ID 始终是单聊对端用户 ID。群聊、超级群的会话 ID 分别为群组 ID、超级群 ID。详见消息介绍中关于 Target ID 的说明。 |
senderUserId | NSString | 发送者ID |
receivedStatusInfo | RCReceivedStatusInfo | 接收状态 |
content | RCMessageContent | 消息的内容 |
sentTime | long long | 消息发送的 Unix 时间戳,单位为毫秒(传 0 会按照本地时间插入)。 |
completion | block | 完成回调。 |
会话页面显示插入的消息
如果是在会话页面 RCConversationViewController
中插入消息,需要调用下面方法才会实时更新到页面显示。
RCMessage *insertMessage;
[self appendAndDisplayMessage:insertMessage];