跳到主要内容

删除会话

删除指定会话

  • 从会话列表中移除指定会话,不删除会话内的消息。
  • 会话内再来一条消息,该会话之前的消息还存在,方便用户查看。
  • 如果需要移除指定会话,并删除会话内的消息,请同时调用删除会话内消息接口。

方法

Future<int> removeConversation(RCIMIWConversationType type, String targetId, String? channelId, {IRCIMIWRemoveConversationCallback? callback});

参数说明

参数名参数类型描述
typeRCIMIWConversationType会话类型
targetIdString会话 ID
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可
callbackIRCIMIWRemoveConversationCallback移除会话事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

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

代码示例

IRCIMIWRemoveConversationCallback? callback = IRCIMIWRemoveConversationCallback(onConversationRemoved: (int? code) {
//...
});

int? ret = await engine?.removeConversation(type, targetId, channelId, callback:callback);

回调方法

  • onConversationRemoved
Function(int? code, RCIMIWConversationType? type, String? targetId, String? channelId)? onConversationRemoved;

参数说明

参数名参数类型描述
codeint接口回调的状态码,0 代表成功,非 0 代表出现异常
typeRCIMIWConversationType会话类型
targetIdString会话 ID
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可。

代码示例

engine?.onConversationRemoved = (int? code, RCIMIWConversationType? type, String? targetId, String? channelId) {
//...
};

按会话类型删除

按指定的会话类型删除会话,并删除会话内的消息。

方法

Future<int> removeConversations(List<RCIMIWConversationType> conversationTypes, String? channelId, {IRCIMIWRemoveConversationsCallback? callback});

参数说明

参数名参数类型描述
conversationTypesList<RCIMIWConversationType>会话类型集合
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
callbackIRCIMIWRemoveConversationsCallback移除会话列表事件回调。SDK 从 5.3.1 版本开始支持 callback 方式回调。从 5.4.0 版本废弃该接口的其他回调方式。如果传入了 callback 参数,仅触发 callback 回调。

返回值

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

代码示例

IRCIMIWRemoveConversationsCallback? callback = IRCIMIWRemoveConversationsCallback(onConversationsRemoved: (int? code) {
//...
});

int? ret = await engine?.removeConversations(conversationTypesInt, channelId, callback:callback);

回调方法

  • onConversationsRemoved
Function(int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId)? onConversationsRemoved;

参数说明

参数名参数类型描述
codeint接口回调的状态码,0 代表成功,非 0 代表出现异常
conversationTypesList<RCIMIWConversationType>会话类型集合
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可。

代码示例

engine?.onConversationsRemoved = (int? code, List<RCIMIWConversationType>? conversationTypes, String? channelId) {
//...
};

删除全部会话

SDK 内部没有清除全部会话的方法,您可使用 按会话类型删除, 传入所有会话类型即可。

该方法会同时删除会话和消息。聊天室和超级群 UI 层建议客户单独展示,所以删除时可不传入。

代码示例

engine.removeConversations(
[RCIMIWConversationType.private, RCIMIWConversationType.group, RCIMIWConversationType.system],
null,
);