关于 ionic-angular
为构建 Ionic 与 Angular 应用提供参考的技能,涵盖项目设置、导航、页面和跨领域实现选择。它按主题组织详细指南,并明确规定应用结构、所需库和编码实践。
主要功能
- 01项目设置、结构与路由指南
- 02页面和导航参考
- 03Signals 与服务实现指南
- 04无障碍、本地化与延迟加载指南
- 05规定必需页面、库和 Angular 实践
适用场景
- 01规划新的 Ionic Angular 应用
- 02实现引导、付费墙和设置页面
- 03选择路由与标签导航模式
- 04构建前检查 Angular 规范
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ erkamyaman/ ionic-capacitor-skills --skill ionic-angular安装后在 Claude Code 中输入/ionic-angular确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/accessibility.mdapp-config.mdbest-practices.mdcommands.mdcontrol-flow.mddefer-loading.mdi18n-ngx-translate.mdnew-app.mdonboarding-guard.mdonboarding-page.mdpaywall-page.mdproject-structure.mdrouting.mdservices.mdsettings-page.mdsignals.mdtabs-navigation.md详细介绍
Ionic + Angular 应用指南
这是一个 SKILL 文件,不是项目。 切勿在此运行
npm install。创建新项目时,请询问项目路径,或在单独目录中搭建项目(例如~/Projects/<app>)。
何时查阅这些参考资料
项目设置:
- 创建新的 Angular Ionic 项目:new-app.md
- 项目结构(文件夹布局):project-structure.md
- 应用配置(
main.ts、app.config.ts):app-config.md - 路由(延迟
loadComponent、标签页):routing.md
页面与导航:
- 引导页守卫(
CanMatchFn— 对于延迟加载路由门控,优先于CanActivateFn):onboarding-guard.md - 引导页(视频背景 + Swiper):onboarding-page.md
- 付费墙页面(RevenueCat):paywall-page.md
- 标签页导航:tabs-navigation.md
- 设置页面:settings-page.md
跨领域主题:
- Signals(
signal、computed、effect、untracked、signal 输入/输出):signals.md - 服务(Theme / Onboarding / Ads / Purchases / Notifications):services.md
- 内置控制流(
@if/@for/@switch):control-flow.md - 无障碍(ARIA、触控目标、屏幕阅读器):accessibility.md
@defer延迟渲染(付费墙 / 引导页中的大型代码块):defer-loading.md- 使用
@ngx-translate/core实现 i18n:i18n-ngx-translate.md - 最佳实践(独立组件、分离文件、优先使用 Signals、
OnPush、inject()):best-practices.md - 命令(build / sync / open):commands.md
原生插件主题位于 ../ionic-shared/references/ — AdMob、RevenueCat、推送通知、存储和主题相关内容始终链接到此处:
必需页面(始终创建)
- 引导页 — 基于滑动操作,包含全屏背景视频 + 渐变叠层。
- 付费墙 — 使用 RevenueCat(每周 / 每年方案),在引导页后立即显示。
- 设置 — 语言、主题、通知、移除广告、重置引导流程。
必需导航
使用 ion-tabs + ion-tab-bar。切勿构建自定义标签栏或引入第三方标签栏库。
必需库
npm install \
@capacitor/preferences @capacitor/push-notifications \
@capacitor/splash-screen @capacitor/status-bar \
@revenuecat/purchases-capacitor @capacitor-community/admob \
@ngx-translate/core @ngx-translate/http-loader \
swiper
硬性规则(Angular 专属)
- ❌ 不要为新页面/组件使用 NgModules — 使用独立组件。
- ❌ 不要在独立组件中使用
IonicModule— 导入单个组件(IonContent、IonButton,等等)。 - ❌ 不要在
@Component中内联使用template或styles— 始终通过templateUrl和styleUrls使用单独的.html、.ts、.scss文件。 - ❌ 不要使用已弃用的
@angular/http— 使用@angular/common/http。 - ❌ 不要使用
any类型 — 使用实际的 TypeScript 类型。 - ✅ 优先使用 Signals 管理响应式状态 —
signal()、computed()、effect()。适用时,服务应公开只读 signals — 参见 signals.md。坚持使用稳定的 signal API;在 Angular 功能达到稳定状态前,避免使用标记为“developer preview”/“experimental”的功能(例如linkedSignal、resource、Signal Forms)。 - ✅ 新组件使用 signal 输入/输出(
input()、input.required()、output())。
报告完成前
npm install
npx ng build
npx cap sync
构建必须成功完成且无错误。每次 Web 构建后,都必须运行 cap sync,然后才能在原生平台上测试。
评论
支持 Markdown