SuperAPI AI 工具集

cometchat-flutter-v6-calls

通用与其它

查看项目

更新于 10-16 05:03

技能介绍

用途:为 Flutter UIKit v6(Bloc 架构)集成 CometChat 语音与视频通话。两种模式:独立模式(仅 Calls SDK,或用 UI Kit 叠加 CallKit/FCM 实现响铃);增量模式(在已有 v6 聊天集成上叠加通话,v6 UI Kit 已内置通话组件,无需额外依赖)。

主要能力:通过 UIKitSettings 启用通话,在 chat init 的 onSuccess 回调中调用 CometChatUIKitCalls.init(appId, region),并在应用根部挂载全局来电浮层。组件包括 CometChatCallButtons、CometChatIncomingCall、CometChatOutgoingCall、CometChatOngoingCall、CometChatCallLogs、CometChatCallBubble;均有对应 Bloc(如 CallButtonsBloc、IncomingCallBloc、OutgoingCallBloc、OngoingCallBloc、CallLogsBloc)。CometChatUIKitCalls 提供 init、initiateCall、acceptCall、rejectCall、generateToken、startSession、endSession 等 API,另有 CallingConfiguration 全局配置。

关键规则与用法:Calls SDK 登录是独立步骤,需在 CometChat.login 之后调用 CometChatCalls.login(生产用 loginWithAuthToken),否则首次通话 API 报 auth token cannot be null;Calls SDK 不持久化登录,启动时用 getLoggedInUser 检查并按需重登。CometChatUIKitCalls.init 必须在 CometChatUIKit.init 成功后调用,且每生命周期仅一次。MaterialApp 必须设置 navigatorKey: CallNavigationContext.navigatorKey,否则来电/去电界面无法挂载。挂断时依次 endSession、结束系统来电 UI、弹出通话页,退出登录后重置 CallOperationsServiceLocator。Android 需启用 Jetifier(android.useAndroidX=true、android.enableJetifier=true),并配置前台服务权限;minSdk 26。VoIP 推送使用 native_call_kit、FCM 与 PushKit。

适用场景:Flutter v6 应用的语音视频通话、会议、通话记录与来电响铃。

限制:Flutter v5 与 v6 差异大(V5 拆分包、GetX;V6 单包、Bloc),迁移需注意。V6 官方文档与示例可能仍偏向 V5;供应商 6.0.1 示例应用缺少 navigatorKey。独立会话模式仅用 Calls SDK,不涉及聊天实体;独立响铃模式需双 SDK。其余配置细节暂未提供。