应用端实验室移动应用
00 / 00
Deep Link 与外部跳转
移动端 scheme、登录回跳、Web 跳转和 Universal Links 的检查方式
Deep Link 让外部链接能直接打开 App 里的某个页面。登录、邮件验证、分享、Widget、支付回跳都可能用到。
你将学到
- Deep Link 的基本工作原理:外部入口到 App 页面
- 自定义 scheme 和 Universal Link 的区别
- 五种常见场景各自需要检查什么
- 没装 App 时的 fallback 处理
Deep Link 怎么工作
Deep Link 的核心很简单:外部有一个链接(邮件里的、网页上的、其他 App 分享的),这个链接匹配到你的 App scheme 或 Universal Link 规则,系统就把用户带到 App 里对应的页面。
模板里已经配好了 Expo Router 的路由解析。你需要确认的是:app.json 里的 scheme 和你在各个服务端配置的回调地址一致。
两种链接方式的区别:
| 方式 | 原理 | 适用场景 |
|---|---|---|
| 自定义 scheme | yourapp://page 形式,App 注册了就能接收 | OAuth 回调、内部跳转 |
| Universal Links | https://yourapp.com/page 形式,需要 AASA 文件 | 外部分享、网页和 App 互通 |
自定义 scheme 简单但容易冲突,Universal Links 更可靠但需要服务端配合。MVP 阶段先用 scheme,后续再加 Universal Links。
常见场景
| 入口 | 检查点 |
|---|---|
| OAuth 登录 | 回跳后 session 能恢复,不丢用户操作上下文 |
| Magic Link | 链接过期时能重发,不显示技术错误 |
| Web 价格页 | 从 App 跳 Web 后能回到 App,不白屏 |
| Widget | 点击后能打开目标页面,App 未启动时也能拉起 |
| 分享链接 | 没装 App 时有 fallback,不出现空白页 |
其中"没装 App"的 fallback 容易被忽略。如果你的分享链接会在微信、短信等渠道传播,要确保链接在没有安装 App 的设备上也能打开一个网页,而不是什么都不发生。
测试 Deep Link
测试 Deep Link 时,用 npx uri-scheme 命令模拟系统调用:
npx uri-scheme open yourapp://some-page --ios这条命令等价于从外部点击了一个 scheme 链接。如果 App 能正确打开目标页面,说明路由解析正常。
Android 上用类似的命令测试:
npx uri-scheme open yourapp://some-page --android如果链接打不开 App,先检查 app.json 里的 scheme 配置,再确认 App 已经在设备上安装并运行过至少一次。
下一步
Deep Link 验证通过后,进入 数据与同步 了解 App 如何通过 API 获取数据和处理多端同步。
想和其他创造者交流?
这篇文档有问题?