用途:在 Flutter 应用中集成 CometChat UIKit v5 的语音与视频通话能力,适用于需要用户或群组通话、来电弹层与通话记录的场景。
主要能力:提供 CometChatCallButtons(用户/群组通话按钮)、CometChatCallLogs(通话历史列表)、CometChatIncomingCall、CometChatOutgoingCall、CometChatOngoingCall 等组件;来电/去电/通话中界面通常由 CometChatCallingExtension 自动管理。
使用方式:通话位于独立包 cometchat_calls_uikit,依赖写法为 cometchat_calls_uikit: ^5.0.15,统一从 package:cometchat_calls_uikit/cometchat_calls_uikit.dart 导入。必须先初始化 Chat SDK 再初始化 Calls SDK;通过 UIKitSettingsBuilder.callingExtension = CometChatCallingExtension() 启用通话扩展。需在 MaterialApp 上设置 navigatorKey: CallNavigationContext.navigatorKey,否则通话浮层无法导航。来电应在应用级(如 dashboard)通过 CallListener 与 CometChatCallEventListener 全局处理,而非逐屏处理。发起通话使用 CometChatUIKitCalls.initiateCall(call),接听使用 acceptCall(sessionId),拒接使用 rejectCall(sessionId, status)。通话前需请求相机与麦克风权限:await [Permission.camera, Permission.microphone].request();。
限制与注意:CometChatCallLogDetails 并非 UIKit 导出,需参考 sample_app/lib/call_log_details/ 自行实现并路由;CometChatIncomingCall 与 CometChatOutgoingCall 的回调签名为 (BuildContext, Call)?,不是单独的 (Call)?;CometChatOutgoingCall 需传入活动 Call 对象及目标 User 或 Group。资料未提供收费、价格与平台支持等细节。