本技能说明如何在 Android 应用中把 CometChat Compose 组件放置到具体屏幕,模式参考 master-app-jetpack 示例。
用途
用于使用 Compose Navigation 设置 CometChat 屏幕、将 CometChat 组件放入 NavHost、在 Dialog 或 BottomSheet 中显示组件、以及构建包含会话、用户、群组、通话标签的选项卡布局。
不适用场景
涉及 Kotlin Views 放置时应使用 cometchat-android-v6-kotlin-placement;需要查询组件 API 时应使用 cometchat-android-v6-compose-components。
主要能力
-
基础 setContent 放置:在 ComponentActivity 的 setContent 中,用 CometChatTheme 包裹 CometChatConversations 等组件,并通过 onItemClick 处理导航。
-
Compose Navigation:使用 rememberNavController 与 NavHost,定义 conversations、chat/{conversationId}、users、groups 等路由。在 chat 路由中通过 conversationId 解析用户或群组,组合 CometChatMessageHeader、CometChatMessageList 与 CometChatMessageComposer。
-
选项卡布局:用 TabRow 与 Tab 切换 Chats、Users、Groups、Calls,对应 CometChatConversations、CometChatUsers、CometChatGroups、CometChatCallLogs。
-
Dialog 放置:通过 Dialog 与状态变量显示 CometChatMessageInformation。
-
BottomSheet 放置:使用 ModalBottomSheet 与 rememberModalBottomSheetState 显示 CometChatReactionList。
-
通话 Activity 启动:进行中的通话使用独立 Activity,调用 CometChatOngoingCallActivity.launchOngoingCallActivity 并传入 activity、sessionId、通话类型、CallWorkFlow 等参数。
-
来电悬浮层:在 Application 中用 StateFlow 暴露来电,在根 Composable 中收集状态并显示 CometChatIncomingCall。
使用方式
提供的代码示例涉及 Compose 的 NavHost、TabRow、Dialog、ModalBottomSheet 以及 CometChat 组件的调用方式,具体参数与集成步骤以示例代码为准。
硬性规则
始终在最外层用 CometChatTheme {} 包裹 CometChat 组件,不要嵌套多个主题包装;CometChatTheme {} 应放在 NavHost 之外,使所有屏幕共享同一主题;进行中的通话必须使用 CometChatOngoingCallActivity,不能作为 Composable 屏幕;在屏幕之间传递 User/Group 对象时应使用缓存或解析器模式,不要在导航路由中序列化完整对象。
适用场景
适合需要在 Compose 应用中集成 CometChat 会话、用户、群组、通话等界面并管理其导航与容器的开发场景。
限制
除提供的示例、模式与硬性规则外,关于平台版本、收费、价格、性能效果等信息暂未提供。