Skip to main content

Recall Message

In ultra group services, message senders can recall successfully sent messages. After successful recall, the server will delete the original message.

By default, RC imposes no restrictions on who can recall messages. If restrictions are needed, consider the following approaches:

  • The App client can implement its own restrictions on message recall operators. For example, regular users in the App's business logic may be prohibited from recalling messages sent by others, while administrator roles may be permitted to recall messages sent by others.
  • To prevent users from recalling messages not sent by themselves, you can submit a ticket to enable the IMLib SDK feature that only allows recalling self-sent messages. This implements server-side restrictions to prevent users from recalling messages not sent by themselves.

Monitoring Message Processing

You can monitor remote users' message recall operations by setting the setRCUltraGroupMessageChangeDelegate delegate:

  1. Set the setRCUltraGroupMessageChangeDelegate: delegate:
[[RCChannelClient sharedChannelManager] setRCUltraGroupMessageChangeDelegate:self];
  1. Implement the onUltraGroupMessageRecalled: message recall delegate method:
/*!
Message recall

@param messages Message collection
*/
- (void)onUltraGroupMessageRecalled:(NSArray<RCMessage*>*)messages {

}

Recall Specific Messages

tip

Only successfully sent messages can be recalled.

API Prototype

//Recall message
- (void)recallUltraGroupMessage:(RCMessage *)message
success:(void (^)(long messageId))successBlock
error:(void (^)(RCErrorCode status))errorBlock

Parameter Description

ParameterTypeDescription
messageRCMessageThe message to be recalled
successBlockBlockCallback for successful recall
errorBlockBlockCallback for failed recall
  • success description:

    Callback ParameterCallback TypeDescription
    messageIdlongThe ID of the recalled message, which has been changed to a new message
  • error description:

    Callback ParameterCallback TypeDescription
    errorCodeRCErrorCodeError code for failure

Sample Code

[[RCChannelClient sharedChannelManager] recallUltraGroupMessage:message success:^(long messageId) {

} error:^(RCErrorCode status) {

}];

Recall Specific Messages and Delete Original Data

tip
  • Only successfully sent messages can be recalled.
  • This method will delete the original message data from both the sender and receiver clients.

API Prototype

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

Parameter Description

ParameterTypeDescription
messageRCMessageThe message to be recalled
isDeleteBOOLSpecifies whether the original message record should be deleted from the local storage of both sender and receiver mobile clients. When false, the mobile client will not delete the original message record but will replace the message content with a recall notification (gray bar notification). When true, the mobile client will delete the original message record and not display a recall notification (gray bar notification).
successBlockBlockCallback for successful recall
errorBlockBlockCallback for failed recall
  • success description:

    Callback ParameterCallback TypeDescription
    messageIdlongThe ID of the recalled message, which has been changed to a new message
  • error description:

    Callback ParameterCallback TypeDescription
    errorCodeRCErrorCodeError code for failure

Sample Code

[[RCChannelClient sharedChannelManager] recallUltraGroupMessage:message
isDelete:YES
success:^(long messageId) {

} error:^(RCErrorCode status) {

}];