跳到主要内容

修改消息

您在成功发送超级群消息后,可以主动修改已发送消息的消息内容。

监听远端用户的消息变更

您可以通过设置 setRCUltraGroupMessageChangeDelegate 代理来监听远端用户对消息的修改操作:

  1. 设置 setRCUltraGroupMessageChangeDelegate: 代理:
Objective C
[[RCChannelClient sharedChannelManager] setRCUltraGroupMessageChangeDelegate:self];
  1. 实现 onUltraGroupMessageModified: 消息变更代理方法,当远端用户修改消息时,会触发此方法同时 RCMessage 对象中的 hasChanged 变更为 YES:
Objective C
/*!
消息内容发生变更

@param messages 消息集合
*/
- (void)onUltraGroupMessageModified:(NSArray<RCMessage*>*)messages {

}

修改本端用户已发消息的内容

本端用户发送消息成功后服务端会返回消息的 messageUId。如果需要修改消息内容,可以使用 modifyUltraGroupMessage 方法,传入待修改消息的 messageUId 和新的消息内容进行修改。 消息被修改后,RCMessage 对象的 hasChanged 属性会被更新为 YES

提示
  • 消息类型无法修改。如果改前为文本消息,则传入的新消息内容必须为 RCTextMessage 类型。
  • 无法修改他人发送的消息。

接口原型

Objective C
- (void)modifyUltraGroupMessage:(NSString *)messageUId
messageContent:(RCMessageContent *)newContent
success:(nullable void (^)(void))successBlock
error:(nullable void (^)(RCErrorCode status))errorBlock;

参数说明

参数类型说明
messageUIdNSString消息发送成功后,服务端返回的。 messageUId
newContentRCMessageContent新的消息内容。
successBlockBlock修改消息成功的回调。
errorBlockBlock修改消息失败的回调。

示例代码

Objective C
RCTextMessage *newTextMessageContent = [RCTextMessage messageWithContent:@"修改后的文本消息内容"];

[[RCChannelClient sharedChannelManager] modifyUltraGroupMessage:messageUId
messageContent:textMessage
success:^{ }
error:^(RCErrorCode status) {}];