用途:该技能面向已具备 CometChat Angular 基础集成的项目,提供 Angular 特有的接线模式,包括初始化、路由、懒加载、SSR 与主题协作。前置要求是先阅读 cometchat-angular-core 与 cometchat-angular-placement。
主要能力:一、APP_INITIALIZER 初始化。通过 APP_INITIALIZER 令牌在根组件渲染前完成 CometChat 初始化,避免在根模板上加 isReady 判断;但该令牌会阻塞整个应用引导,需自行 catch 初始化错误,避免凭据或网络问题导致应用永不渲染。二、路由守卫。用 CanActivate 调用 CometChatUIKit.getLoggedinUser(),未登录时跳转登录页。三、懒加载聊天模块。把聊天组件放入 feature module 并用 loadChildren 加载,组件必须在使用它的模块中导入,每个使用 cometchat-* 标签的模块或独立组件都需 CUSTOM_ELEMENTS_SCHEMA;初始化仍须在应用根部完成。四、独立组件(Angular 14+)。用 bootstrapApplication、provideRouter、provideAnimations 与 APP_INITIALIZER 在 main.ts 接线。五、登录流程。提供开发期启动登录与生产环境后端换取 authToken 后登录两种模式。六、Angular Material。CometChat 使用自己的 CometChatThemeService,不读取 Material 主题,需分别设置;可用 MatSidenav 承载会话列表与消息区。七、SSR。CometChat 使用 window、document 等浏览器 API,服务端需用 isPlatformBrowser 跳过初始化并守卫组件渲染。八、变更检测。父组件可用 OnPush,但 CometChat 回调在 Angular zone 外运行,需在回调后调用 markForCheck()。
限制与反模式:不要在懒加载模块内调用 init();不要用 window.location.reload() 代替 Angular Router 导航;不要在 SSR 中渲染聊天组件;OnPush 下遗漏 markForCheck() 会导致视图不更新。未提供具体版本要求、收费或更多平台细节。