SuperAPI AI 工具集

cometchat-flutter-v6-core

编程与开发

查看项目

更新于 10-15 20:14

技能介绍

用途:该技能用于编写或审查使用 cometchat_chat_uikit 的 Flutter 代码,提供一组“不可协商”的硬性约束,避免静默失败、崩溃和隐蔽 bug。

主要能力与规则:

  1. INIT_FIRST:CometChatUIKit.init() 必须在任何登录、组件使用或 SDK 调用前完成,不得在 init 未完成时调用 login。
  2. AUTH_CHECK_AFTER_INIT:init 完成后静态字段 CometChatUIKit.loggedInUser 已填充,应同步检查该字段,不要另调 CometChat.getLoggedInUser();login 与 loginWithAuthToken 同理。
  3. SCAFFOLD_NO_RESIZE:含 CometChatMessageComposer 的 Scaffold 必须设 resizeToAvoidBottomInset: false,否则键盘动画会双重补偿导致布局跳动。
  4. LISTENER_LIFECYCLE:SDK 监听器须在 initState() 用唯一 ID 注册,并在 dispose() 用同一 ID 移除,否则事件重复与内存泄漏。
  5. THEME_CACHE:主题值应在 didChangeDependencies() 用 _themeInitialized 标志缓存,不要在 build() 调用 CometChatThemeHelper.getColorPalette(context),避免键盘动画重建时的高开销。
  6. SUBSCRIPTION_TYPE_REQUIRED:UIKitSettingsBuilder 缺少 subscriptionType 会静默禁用所有在线状态事件(上下线、正在输入)。
  7. REGION_LOWERCASE:region 必须为小写(us/eu/in),否则抛 ERR_INVALID_REGION。
  8. SERVICE_LOCATOR_INIT:手动创建 BLoC 前须先调用对应 ServiceLocator.instance.setup()。
  9. MUID_PRESERVATION:处理 ccMessageSent 事件时先按 muid 比对,再按 id。
  10. 回调转异步:用 Completer 包装 onSuccess/onError 以配合 async/await。

组件架构与命名:组件按 bloc/domain/data/di/widgets 分层,命名遵循 CometChat{Name}、{Name}Bloc、{Verb}{Name}、{Name}RepositoryImpl、{Verb}{Name}UseCase、{Name}ServiceLocator、CometChat{Name}Style。

可视化构建器集成:Visual Builder 目前输出 V5 形态代码(cometchat_chat_uikit ^5.2.12 等),无 V6 原生 canonical;可用命令 cometchat builder export --platform flutter --json,重同步加 --force,已知 F56(api_services.dart 资源路径错误需改为 assets/sample_app/sample_data.json)、F57(重同步覆盖该补丁需重打)、F58(资源复制非幂等,建议 rsync -a --delete)。

适用场景:Flutter 中集成 CometChat 聊天 UI 的场景,包括代码生成与审查。

限制:本文未提供收费、价格、完整安装命令及官方文本,相关事实暂未提供。