跳到主要内容

会话置顶

会话置顶功能提供以下能力:

  • 在会话列表中置顶会话:通过会话 RCIMIWConversation 的置顶 top 属性控制。

在会话列表中置顶会话

设置指定会话在会话列表中置顶后,SDK 将修改 RCIMIWConversationtop 字段,该状态将会被同步到服务端。融云会在为用户自动同步会话置顶的状态数据。客户端可以主动获取或通过监听器获取到最新数据。

SDK 提供设置会话是否置顶接口,置顶的状态将会被同步到服务端,切换设备后置顶状态也会一并同步下来。

设置会话置顶

方法

Dart
Future<int> changeConversationTopStatus(RCIMIWConversationType type, String targetId, String? channelId, bool top, {IRCIMIWChangeConversationTopStatusCallback? callback});

参数说明

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

返回值

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

代码示例

Dart
IRCIMIWChangeConversationTopStatusCallback? callback = IRCIMIWChangeConversationTopStatusCallback(
onConversationTopStatusChanged: (int? code) {
//...
});

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

获取会话置顶状态

通过此方法获取指定会话的置顶状态。

方法

Dart
Future<int> getConversationTopStatus(RCIMIWConversationType type, String targetId, String? channelId, {IRCIMIWGetConversationTopStatusCallback? callback});

参数说明

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

返回值

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

代码示例

Dart
IRCIMIWGetConversationTopStatusCallback? callback = IRCIMIWGetConversationTopStatusCallback(
onSuccess: (bool? t) {
//...
},
onError: (int? code) {
//...
});

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

获取置顶会话列表

获取置顶会话列表

方法

Dart
Future<int> getTopConversations(List<RCIMIWConversationType> conversationTypes, String? channelId, {IRCIMIWGetTopConversationsCallback? callback});

参数说明

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

返回值

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

代码示例

Dart
IRCIMIWGetTopConversationsCallback? callback = IRCIMIWGetTopConversationsCallback(
onSuccess: (List<RCIMIWConversation>? t) {
//...
},
onError: (int? code) {
//...
});

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

置顶状态同步

SDK 提供了会话状态(置顶或免打扰)同步机制,通过设置会话状态同步监听器,当在其它端修改会话状态时,可在本端实时监听到会话状态的改变。

方法

Dart
Function(RCIMIWConversationType? type, String? targetId, String? channelId, bool? top)? onConversationTopStatusSynced;

参数说明

参数名参数类型描述
typeRCIMIWConversationType会话类型
targetIdString会话 ID
channelIdString频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。
topbool是否置顶

代码示例

Dart
engine?.onConversationTopStatusSynced = (RCIMIWConversationType? type, String? targetId, String? channelId, bool? top) {
//...
};