会话管理
获取已打开的会话
Global IM UIKit 提供了 getOpenedConversation
接口,用于获取当前界面已打开的会话。如果当前界面未打开任何会话,则返回值为 null
。
JavaScript
const conversation = kitApp.getOpenedConversation();
打开指定会话
openConversation
用于打开指定会话。若该会话不存在于当前显示的会话列表内,Global IM UIKit 将新建会话并将其置于会话列表顶部。
JavaScript
const { code } = await kitApp.openConversation({ conversationType: ConversationType.PRIVATE, targetId: 'A' });
设置会话扩展
setConversationExtension
用于向会话显示面板添加扩展功能。添加的扩展功能将显示在已打开会话的标题(Title)面板右侧区域,如下方箭头所示。
JavaScript
kitApp.setConversationExtension([
{
id: "NOT_SYSTEM", // 功能 ID,用于区分不同的扩展功能。
icon: "", // 展示的图标 icon 文件地址,建议使用 SVG 格式。
filter(conversation) {
// 过滤器函数,用于针对不同会话做区别展示。当返回值为 false 时,将不会展示该扩展功能。
// 例如,在本例中,该功能不对系统会话类型的会话显示。
return conversation.conversationType !== ConversationType.SYSTEM;
},
},
{
id: "ALL",
icon: "",
},
]);
当用户点击功能扩展按钮时,Global IM UIKit 将派发 RCKitEvents.CONVERSATION_EXTENSION_CLICK
事件。
JavaScript
import { RCKitEvents } from '@rongcloud/global-im-uikit';
kitApp.addEventListener(RCKitEvents.CONVERSATION_EXTENSION_CLICK, (evt) => {
const data = evt.data;
console.log('被点击的功能 ID:', data.id);
console.log('当前会话:', data.conversation);
});