mcpField
I
ionic-deep-links

ionic-deep-links

github.com/erkamyaman开发1644 次安装1 周前更新
代码仓库

关于 ionic-deep-links

面向 Ionic 和 Capacitor 应用开发者的深度链接指南,涵盖自定义 URL scheme、iOS Universal Links、Android App Links,以及将链接路由到应用流程。

主要功能

  1. 01自定义 URL scheme 指南
  2. 02iOS Universal Links 配置
  3. 03Android App Links 配置
  4. 04统一的深度链接路由模式
  5. 05冷启动 URL 处理指南

适用场景

  1. 01在应用中打开密码重置链接
  2. 02处理 OAuth 回调
  3. 03路由邀请和分享链接
  4. 04在 iOS 和 Android 模拟器中测试链接

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/erkamyaman/ionic-capacitor-skills --skill ionic-deep-links

安装后在 Claude Code 中输入/ionic-deep-links确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
android-app-links.md
custom-scheme.md
ios-universal-links.md
routing.md

详细介绍

深层链接(URL scheme + Universal Links + App Links)

你可能需要配合使用的三种深层链接:

类型示例验证方式适用场景
自定义 schememyapp://reset-password?token=…无内部流程、OAuth 回调。配置简单,任何人都可以注册该 scheme。
iOS Universal Linkhttps://yourapp.com/reset-password?token=…域名上的 apple-app-site-association 文件品牌链接,可打开应用,也可回退到网页。
Android App Linkhttps://yourapp.com/reset-password?token=…域名上的 assetlinks.json 文件在 Android 上实现与 Universal Links 相同的目标。

要打造完善的应用,通常需要三种链接都支持:同一个 URL 可在 iOS 和 Android 上使用(Universal/App Link),并在无法验证链接时回退到自定义 scheme。

何时查阅

规范 URL 格式

为每种用途选定一个路径前缀,并在自定义 scheme、Universal Links 和 App Links 中保持一致,这样同一套路由代码就能处理所有三种链接:

用途自定义 schemeUniversal/App Link
身份验证(重置密码 / OAuth 回调 / magic link)myapp://auth/<flow>?...https://yourapp.com/auth/<flow>?...
邀请myapp://invite/<code>https://yourapp.com/invite/<code>
分享myapp://share/<id>https://yourapp.com/share/<id>

此脚手架中的身份验证路径适用于 ionic-firebase、ionic-supabase,以及密码重置 / OAuth 回调流程:

  • Magic link:https://yourapp.com/auth/finish-signin?...
  • 密码重置:myapp://auth/reset-password?token=...
  • OAuth 回调(Supabase):myapp://auth/callback#access_token=...

深层链接处理器中的路由逻辑会匹配 pathname.startsWith('/auth/'),并将请求交给相应流程处理。

硬性规则

  • ✅ 使用 @capacitor/app 的 appUrlOpen 监听器——它会以统一方式处理所有三种链接。
  • ✅ 在域名根目录托管 AASA / assetlinks.json 文件,并设置正确的 Content-Type(application/json,不带扩展名)。
  • ✅ 使用 xcrun simctl openurl(iOS 模拟器)和 adb shell am start -a android.intent.action.VIEW -d "<url>"(Android 模拟器)进行测试。
  • ❌ 密码重置 / OAuth 不要只依赖自定义 scheme——现代操作系统版本和电子邮件客户端越来越常会屏蔽这类链接。
  • ❌ 冷启动时别忘了调用 App.getLaunchUrl()——冷启动打开时,appUrlOpen 可能不会可靠触发(许多 Capacitor 版本中会触发,但行为取决于平台和版本)。为确保万无一失:启动时始终检查一次 getLaunchUrl()。

库

npm install @capacitor/app
npx cap sync

评论

支持 Markdown