用途:面向使用 CometChat Flutter UIKit v5 事件系统的开发场景,帮助在 Flutter 应用中正确接入事件监听与 UI 协调。
主要能力:资料将事件系统分为两层。第一层是 CometChat SDK 监听器,接收来自网络的原始消息、通话、用户、群组事件;第二层是 UIKit 事件,由 UIKit 组件发出,用于 UI 协调,采用静态 Map<String, Listener> 模式。
使用方式:所有事件类遵循相同的注册/移除模式。在 initState 中注册,在 dispose 中移除;使用 GetxController 时改用 onInit()/onClose()。UIKit 事件类包括 CometChatMessageEvents、CometChatUserEvents、CometChatGroupEvents、CometChatCallEvents、CometChatUIEvents、CometChatConversationEvents,分别通过 addMessagesListener/removeMessagesListener 等成对方法注册与移除。SDK 监听器通过 CometChat.addMessageListener、addUserListener、addGroupListener、addCallListener、addConnectionListener 注册,并用对应的 remove 方法移除。
常用 UIKit 事件:CometChatUIEvents 的 openChat;CometChatMessageEvents 的 ccMessageSent、ccMessageEdited、ccMessageDeleted;CometChatUserEvents 的 ccUserBlocked/ccUserUnblocked;CometChatGroupEvents 的 ccGroupMemberKicked、ccGroupMemberBanned、ccGroupMemberAdded、ccOwnershipChanged;CometChatCallEvents 的 ccOutgoingCall、ccCallAccepted、ccCallRejected、ccCallEnded。
适用场景:需要响应 UIKit 层操作(如通过输入框发送消息、通过 UI 建群、通过 UI 拉黑用户)时用 UIKit 事件;需要处理原始网络事件(收到消息、用户上下线、群成员加入)时用 SDK 监听器。UIKit 组件内部同时使用两者。
限制与注意事项:监听器 ID 必须唯一,建议使用时间戳或 hashCode,避免硬编码;必须在 dispose()/onClose() 中用同一 ID 移除,否则造成监听器泄漏;禁止在 build() 中注册,因为每次重建都会调用;presence 事件需要在 UIKitSettings 中设置 subscriptionType 才能生效。资料未提供具体版本号、安装命令或收费信息。