会话置顶
IMKit 提供设置会话置顶与展示置顶会话。
用法
设置会话置顶后,该状态将会被同步到服务端。融云会为用户自动在设备间同步会话置顶的状态数据。客户端可以通过监听器获取同步通知,也可以主动获取最新数据。
注意:同步置顶会话默认开启,但是如果是空会话,从版本
5.10.1
开始默认不同步。如需开启空会话同步,请在InitOption
中使用enableSyncEmptyTopConversation
接口设置,参数传入true
开启空会话同步,传入false
关闭空会话同步。
定制 化
如果 IMKit 默认实现的功能不满足需求,您可以使用 IMKit 提供的 API。
设置会话置顶
设置会话置顶后,会话将在会话列表页面置顶显示。所有置顶会话按照会话时间降序排列。
IMCenter.getInstance().setConversationToTop(conversationType, targetId, isTop, needCreate, callback);
参数 | 类型 | 说明 |
---|---|---|
conversationType | ConversationType | 会话类型 |
targetId | String | 会话 Id |
isTop | boolean | 是否置顶, true 为置顶, false 为取消置顶 |
needCreate | boolean | 会话不存在时,是否创建会话 |
callback | ResultCallback<Boolean> | 回调接口 |
客户端一般通过本地消息数据自动生成会话与会话列表。如果需要置顶的会话在本地尚不存在,您可以通过 needCreate
参数创建会话。
ConversationType conversationType = ConversationType.PRIVATE;
String targetId = " 会话 Id ";
boolean isTop = true;
boolean needCreate = true;
IMCenter.getInstance().setConversationToTop(conversationType, targetId, isTop, needCreate, new
ResultCallback<Boolean>() {
@Override
public void onSuccess(Boolean success) {
}
@Override
public void onError(RongIMClient.ErrorCode ErrorCode) {
}
}) ;
监听置顶状态同步
即时通讯业务支持会话状态(置顶状态数据和免打扰状态数据)同步机制。设置会话状态同步监听器后,如果会话状态改 变,可在本端收到通知。
会话的置顶和免打扰状态数据同步后,SDK 会触发 ConversationStatusListener
的 onStatusChanged
方法。详细说明可参见多端同步免打扰/置顶。
public interface ConversationStatusListener {
void onStatusChanged(ConversationStatus[] conversationStatus);
}
获取会话置顶状态与置顶会话
您可以从客户端主动获取会话置顶状态数据和置顶会话,但 IMKit SDK 未直接提供相关方法,您需要使用 IMLib 中提供的方法。
详见 IMLib 文档会话置顶 中的获取会话置顶状态与获取置顶会话列表。