跳到主要内容

撤回消息

撤回消息

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

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

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

方法

Future<int> recallMessage(RCIMIWMessage message, {IRCIMIWRecallMessageCallback? callback});

参数说明

参数名参数类型描述
messageRCIMIWMessage需要被撤回的消息
callbackIRCIMIWRecallMessageCallback事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

返回值描述
Future<int>当次接口操作的状态码。0 代表调用成功 具体结果需要实现接口回调,非 0 代表当前接口调用操作失败,不会触发接口回调,详细错误参考错误码

代码示例

IRCIMIWRecallMessageCallback? callback = IRCIMIWRecallMessageCallback(onMessageRecalled: (int? code, RCIMIWMessage? message) {
//...
});

int? ret = await engine?.recallMessage(message, callback:callback);

回调方法

  • onMessageRecalled

    接口调用结果的监听

Function(int? code, RCIMIWMessage? message)? onMessageRecalled;

参数说明

参数名参数类型描述
codeint接口回调的状态码,0 代表成功,非 0 代表出现异常
messageRCIMIWMessage撤回的消息

代码示例

engine?.onMessageRecalled = (int? code, RCIMIWMessage? message) {
//...
};

监听消息撤回事件

用于监听已接收的消息被撤回的事件。当接受到的某条消息被撤回时,会通过此监听器回调。

方法

Function(RCIMIWMessage? message)? onRemoteMessageRecalled;

参数说明

参数名参数类型描述
messageRCIMIWMessage原本的消息会变为撤回消息

代码示例

engine?.onRemoteMessageRecalled = (RCIMIWMessage? message) {
//...
};