Linking、Deep Links、Android App Links 和 iOS Universal Links 概览

编辑页面

在你的 Expo 应用中实现 Linking 和 Deep Links 的可用资源概览。


For the complete documentation index, see llms.txt. Use this Use this file to discover all available pages.

链接

链接使你的应用能够与传入和传出的 URL 进行交互。在这个过程中,用户不仅会被引导打开你的应用,还会被带到应用内的某个特定屏幕(路由)。

观看:使用 Expo 配置链接
观看:使用 Expo 配置链接

在你的 Expo 应用中设置深度链接、通用链接和应用链接,以处理传入和传出的 URL。

链接策略

在你的 Expo 应用中,你需要处理不同的链接策略:

  • 使用你的 Web 域名链接到你的应用(使用 httpshttp 协议的 通用链接
  • 使用自定义协议从其他应用或网站链接到你的应用(深度链接)
  • 从你的应用链接到其他应用(传出链接)
提示: Expo Go 对传入链接的支持有限。我们建议使用 开发构建 来测试你的应用的链接策略。

通用链接

如果应用已安装,Android 和 iOS 都有各自的系统将 Web URL 路由到应用。Android 上,这个系统称为 App Links,iOS 上称为 Universal Links。这两个系统的前提都是你拥有一个可托管文件的 Web 域名,用于验证你对该域名的控制权。

Android App Links 与 标准深度链接 不同,因为它们使用常规的 HTTP 和 HTTPS 协议,并且仅适用于 Android 设备。

这种链接类型允许你的应用在用户点击链接时始终打开,而不是在设备上显示的对话框中让用户在浏览器或其他处理程序之间进行选择。如果用户没有安装你的应用,该链接会将他们带到你的应用关联的网站。

配置 Android App Links

了解如何配置 intentFilters 并从标准 Web URL 设置双向关联。

iOS Universal Links 与 标准深度链接 不同,因为它们使用常规的 HTTP 和 HTTPS 协议,并且仅适用于 iOS 设备。

这种链接类型允许你的应用在用户点击指向你 Web 域名的 HTTP(S) 链接时打开。如果用户没有安装你的应用,该链接会将他们带到你的应用关联的网站。你还可以通过显示一个横幅让用户使用 Apple Smart Banner 打开你的应用,从而进一步配置网站。

配置 iOS Universal Links

了解如何配置 associatedDomains 并设置双向关联。

从其他应用或网站链接到你的应用

深度链接 是指指向应用或网站中基于特定 URL 的内容的链接。

例如,点击产品广告后,你的应用会在用户设备上打开,他们可以查看该产品的详情。用户点击的这个产品链接可能如下所示(或者也可以通过设置 window.location.href 由 JavaScript 调用):

<a href="myapp://web-app.com/product">查看产品</a>

这个链接由三部分构成:

  • 协议:标识应该打开该 URL 的应用的 URL 协议(示例:myapp://)。对于非标准深度链接,它也可以是 httpshttp。对于基于 http(s) 的深度链接,我们建议使用 通用链接
  • 主机:应该打开该 URL 的应用的域名(示例:web-app.com)。
  • 路径:应该打开的屏幕路径(示例:/product)。如果未指定路径,用户将进入应用的主屏幕。
链接到你的应用

了解如何配置自定义 URL 协议,以创建你应用的深度链接。

使用 Expo Router 处理深度链接

要实现上述任何链接策略,我们建议使用 Expo Router,因为它会自动为你应用的所有屏幕启用深度链接。

优点:

  • 可以使用 Expo Router 的 Link 组件来 处理到其他应用的 URL 协议
  • Android App Links 和 iOS Universal Links 需要在 JavaScript 中为链接配置运行时路由。使用 Expo Router 时,你不必单独配置运行时路由,因为所有路由的深度链接都会自动启用。
  • 对于第三方深度链接,你可以覆盖默认的链接行为来处理传入链接并发送导航事件。参见 自定义链接

从你的应用链接到其他应用

从你的应用链接到其他应用,是通过使用基于目标应用 URL 协议的 URL 来实现的。这个 URL 协议 允许你引用该原生应用中的资源。

你的应用可以使用 通用 URL 协议 为默认应用提供支持,包括 httpshttp(通常被 Chrome、Safari 等 Web 浏览器使用),并使用 JavaScript 调用可启动相应原生应用的 URL。

链接到其他应用

了解如何处理常见和自定义 URL 协议,以从你的应用链接到其他应用。