跳到主要内容

设置消息内容

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

提示

此功能从 5.34.0 版本开始支持。

注意

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

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

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

消息内容如 TextMessageImageMessage 等都属于 Message 中的 MessageContent

设置某条消息的 MessageContent 与可搜索的内容

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

参数说明

参数类型说明
messageIdint消息 ID。
contentMessageContent消息内容。如 TextMessageImageMessage 等。
objectNameString消息类型。如 RC:TxtMsg(文本消息)、RC:FileMsg(文件消息)、RC:ImgTextMsg(图文消息)等。
callbackIRongCoreCallback.ResultCallback结果回调。

示例代码

Java
int messageId = 1;
TextMessage textMessage = TextMessage.obtain("消息内容");

MessageTag msgTag = textMessage.getClass().getAnnotation(MessageTag.class);
String objectName1 = msgTag.value(); // 第一种方式
String objectName2 = "RC:TxtMsg"; // 第二种方式

List<String> searchWords = new ArrayList<>();
searchWords.add("word1");
searchWords.add("word2");

RongCoreClient.getInstance().setMessageContent(messageId, textMessage, objectName1, searchWords, new IRongCoreCallback.ResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean result) {
// 设置成功
}

@Override
public void onError(IRongCoreEnum.CoreErrorCode e) {
// 设置失败
}
});