会话置顶
会话置顶功能提供以下能力:
- 在会话列表中置顶会话:通过会话 RCIMIWConversation 的置顶
top
属性控制。
在会话列表中置顶会话
设置指定会话在会话列表中置顶后,SDK 将修改 RCIMIWConversation 的 top
字段,该状态将会被同步到服务端。融云会在为用户自动同步会话置顶的状态数据。客户端可以主动获取或通过监听器获取到最新数据。
SDK 提供设置会话是否置顶接口,置顶的状态将会被同步到服务端,切换设备后置顶状态也会一并同步下来。
设置会话置顶
方法
Dart
Future<int> changeConversationTopStatus(RCIMIWConversationType type, String targetId, String? channelId, bool top, {IRCIMIWChangeConversationTopStatusCallback? callback});
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
type | RCIMIWConversationType | 会话类型 |
targetId | String | 会话 ID |
channelId | String | 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 |
top | bool | 是否置顶 |
callback | IRCIMIWChangeConversationTopStatusCallback | 事件回调。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});
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
type | RCIMIWConversationType | 会话类型 |
targetId | String | 会话 ID |
channelId | String | 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 |
callback | IRCIMIWGetConversationTopStatusCallback | 事件回调。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});
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
conversationTypes | List<RCIMIWConversationType> | 会话类型集合 |
channelId | String | 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 |
callback | IRCIMIWGetTopConversationsCallback | 事件回调。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;
参数说明
参数名 | 参数类型 | 描述 |
---|---|---|
type | RCIMIWConversationType | 会话类型 |
targetId | String | 会话 ID |
channelId | String | 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 频道 ID,仅支持超级群使用,其他会话类型传 null 即可。 |
top | bool | 是否置顶 |
代码示例
Dart
engine?.onConversationTopStatusSynced = (RCIMIWConversationType? type, String? targetId, String? channelId, bool? top) {
//...
};