设置消息内容
当您需要设置某条消息的 RCMessageContent 与可搜索的内容时,可以使用该功能。
提示
此功能从 5.34.0 版本开始支持。注意区别消息修改 modifyMessageWithParams 功能,消息内容设置常用于对本地数据库已存消息通过该接口进行修改 RCMessageContent,不涉及远端。
注意
SDK 不会验证传入的 RCMessageContent 和 searchWords 的正确性,您需要自行确保:
- 传入的
RCMessageContent符合融云对 RCMessage 的定义和规范 objectName与RCMessageContent的类型相匹配searchWords内容准确且符合您的业务需求
如传入不正确的内容,可能导致该消息在数据库中存在脏数据,影响消息的正常显示和搜索功能。
消息内容如 RCTextMessage、RCImageMessage 等都属于 RCMessage 中的 RCMessageContent。
设置消息的 RCMessageContent 与可搜索的内容
您可以通过 setMessageContent 设置某条消息的消息内容(RCMessageContent)以及可搜索内容(searchWords)。
参数说明
| 参数 | 类型 | 说明 |
|---|---|---|
messageId | long long | 消息 ID。 |
content | RCMessageContent | 消息内容。如 RCTextMessage、RCImageMessage 等。 |
objectName | NSString | 消息类型。如 RC:TxtMsg(文本消息)、RC:FileMsg(文件消息)、RC:ImgTextMsg(图文消息)等。 |
searchWords | NSArray | 搜索文本内容列表,可选参数。如果 objectName 为空,searchWords 也不会更新。 |
completion | Block | 执行结果回调,通过 RCErrorCode 确认是否更新成功。 |
示例代码
Objective C
// messageId 是本地数据库消息的唯一标识
long long messageId = 1;
RCTextMessage *content = [RCTextMessage messageWithContent:@"修改已入库的消息内容"];
// NSString *objectName = @"RC:TxtMsg";
NSString *objectName = [RCTextMessage getObjectName];
[[RCCoreClient sharedCoreClient] setMessageContent:messageId
content:content
objectName:objectName
searchWords:@[@"消息关键词"]
completion:^(RCErrorCode code) {
// 根据 code 判断是否设置成功
}];