跳到主要内容

设置消息内容

当您需要设置某条消息的 RCMessageContent 与可搜索的内容时,可以使用该功能。

提示

此功能从 5.34.0 版本开始支持。注意区别消息修改 modifyMessageWithParams 功能,消息内容设置常用于对本地数据库已存消息通过该接口进行修改 RCMessageContent,不涉及远端。

注意

SDK 不会验证传入的 RCMessageContentsearchWords 的正确性,您需要自行确保:

  • 传入的 RCMessageContent 符合融云对 RCMessage 的定义和规范
  • objectNameRCMessageContent 的类型相匹配
  • searchWords 内容准确且符合您的业务需求

如传入不正确的内容,可能导致该消息在数据库中存在脏数据,影响消息的正常显示和搜索功能。

消息内容如 RCTextMessageRCImageMessage 等都属于 RCMessage 中的 RCMessageContent

设置消息的 RCMessageContent 与可搜索的内容

您可以通过 setMessageContent 设置某条消息的消息内容(RCMessageContent)以及可搜索内容(searchWords)。

参数说明

参数类型说明
messageIdlong long消息 ID。
contentRCMessageContent消息内容。如 RCTextMessageRCImageMessage 等。
objectNameNSString消息类型。如 RC:TxtMsg(文本消息)、RC:FileMsg(文件消息)、RC:ImgTextMsg(图文消息)等。
searchWordsNSArray搜索文本内容列表,可选参数。如果 objectName 为空,searchWords 也不会更新。
completionBlock执行结果回调,通过 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 判断是否设置成功
}];