跳到主要内容

撤回消息

超级群业务中,消息发送方可撤回已发送成功的消息。撤回成功后,服务端即删除原始消息。

默认情况下,融云对撤回消息的操作者不作限制。如需限制,可考虑以下方案:

  • App 客户端自行限制撤回消息的操作者。例如,不允许 App 业务中的普通用户撤回他人发送的消息,允许 App 业务中的管理员角色撤回他人发送的消息。
  • 如需避免用户撤回非本人发送的消息,可以提交工单申请打开IMLib SDK 只允许撤回自己发送的消息。从融云服务端进行限制,禁止用户撤回非本人发送的消息。

撤回指定消息

撤回指定消息,只有已发送成功的消息可被撤回。

方法说明

//撤回消息
- (void)recallUltraGroupMessage:(RCMessage *)message
success:(void (^)(long messageId))successBlock
error:(void (^)(RCErrorCode status))errorBlock

参数说明

参数类型说明
messageRCMessage需要撤回的消息
successBlockBlock撤回成功的回调
errorBlockBlock撤回失败的回调
  • success 说明:

    回调参数回调类型说明
    messageIdlong撤回的消息ID,该消息已经变更为新的消息
  • error 说明:

    回调参数回调类型说明
    errorCodeRCErrorCode失败错误码

撤回指定消息并删除原始数据

撤回指定消息,并删除移动端发送方、接收方的原始消息数据。

方法说明

//撤回消息
- (void)recallUltraGroupMessage:(RCMessage *)message
isDelete:(BOOL)isDelete
success:(void (^)(long messageId))successBlock
error:(void (^)(RCErrorCode errorcode))errorBlock

参数说明

参数类型说明
messageRCMessage需要撤回的消息
isDeleteisDelete指定移动端发送方与接收方是否需要从本地删除原始消息记录。为 false 时,移动端不会删除原始消息记录,会将消息内容替换为撤回提示(小灰条通知)。为 true 时,移动端会删除原始消息记录,不显示撤回提示(小灰条通知)。
successBlockBlock撤回成功的回调
errorBlockBlock撤回失败的回调
  • success 说明:

    回调参数回调类型说明
    messageIdlong撤回的消息ID,该消息已经变更为新的消息
  • error 说明:

    回调参数回调类型说明
    errorCodeRCErrorCode失败错误码

监听消息处理

@protocol RCUltraGroupMessageChangeDelegate <NSObject>

/*!
消息扩展更新,删除

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

/*!
消息内容发生变更

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

/*!
消息撤回

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

@end

//设置超级群消息变化监听
- (void)setRCUltraGroupMessageChangeDelegate:(id<RCUltraGroupMessageChangeDelegate>)delegate