市场营销部门发送了电子邮件。该链接打开了应用商店,而非促销页面。支持工单中提到“该链接在安卓系统上有效,但在苹果手机上无效”。质量保证团队仅在物理设备上复现了此问题,在模拟器中从未出现。
如果您是 Flutter 深度链接的新手,这个故事听起来可能很熟悉。
什么是深度链接?它是一种统一资源定位符(URL),能打开您的应用并导航至特定页面,而不仅仅是首页。例如:https://example.com/promo/123 应直接打开您的应用并显示促销详情页面。
初学者为何感到困难:在该功能生效之前,三个独立的系统必须达成一致:
- 您的网站(用于证明您拥有该域名的验证文件)
- iOS 或安卓原生配置(权限配置、清单文件条目)
- 您的 Flutter 路由器(将统一资源定位符路径映射到页面的 Dart 代码)
深度链接在演示中看起来很简单。在生产环境中,一个配置错误的文件会导致静默失败。
我们为需要让电子邮件、短信、网页和广告活动准确落地到应用内特定页面的 Flutter 团队提供跨平台移动交付服务。本文提供了我们在宣布深度链接开发完成前执行的检查清单,并定义了那些教程中经常忽略的术语。如需了解平台行为以及路由器与导航器的处理差异,请先阅读 Flutter 的深度链接概述。
深度链接的工作原理(思维模型)
当用户点击链接时,流程如下:
-
用户点击电子邮件、短信或浏览器中的
https://example.com/promo/123。 - 手机检查您的应用是否被允许处理该域名(服务器上的验证文件 + 原生应用配置)。
- 操作系统打开应用(如果已安装且经过验证),并将完整统一资源定位符传递给 Flutter。
-
您的路由器读取路径(
/promo/123)并显示匹配的页面。
您会在各处看到两个术语:
- 冷启动:应用完全关闭。操作系统启动应用,并在稍后传递链接。
- 热启动:应用在后台运行。操作系统唤醒应用,并在其运行时传递新链接。
大多数初学者的错误都隐藏在冷启动中(身份验证未就绪,路由器尚未监听)。
每个教程中都会出现的术语
| 术语 | 通俗含义 |
|---|---|
| 深度链接 | 打开应用内特定页面的统一资源定位符 |
| 通用链接(iOS) | 经苹果验证的超文本传输协议安全版深度链接 |
| 应用链接(安卓) | 安卓系统上的相同概念 |
| AASA | 您网站上的苹果域名验证文件(apple-app-site-association) |
| assetlinks.json | 您网站上的安卓域名验证文件 |
| 自定义统一资源定位符方案 |
myapp:// 快捷方式;易于在本地演示,但不适用于电子邮件营销活动 |
| 意图过滤器 | 安卓清单文件条目,声明“此应用处理这些统一资源定位符” |
各平台的官方设置指南请参阅文末的参考资料。
何时需要深度链接(以及何时不需要)
您并非在开发每个应用的第一天就需要深度链接。当电子邮件、短信或广告中的统一资源定位符需要落地到应用内的特定页面时,再添加此功能。
值得投入设置成本的情况:
- P
免责声明:本文内容来自互联网,该文观点不代表本站观点。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请到页面底部单击反馈,一经查实,本站将立刻删除。