关于移动应用方案深度链接的问题

Question about mobile app scheme deep linking

我在 iPhone 上安装了 Medium 应用程序。

在 Google Chrome 应用程序上进行搜索时,当我点击搜索结果中的 medium.com link 时,它会打开我的 Medium 应用程序。

怎么会这样? Google Chrome 如何将 https://medium.com 解释为 medium://?

所以您特别提到的功能是通用链接,需要服务器端和客户端修改。

在服务器端/网站上,您需要添加一个 AASA(Apple App Site Association)文件。此文件只是一个 JSON 文件,其中包含相应应用程序标识符的特定应用程序 links url。示例如下所示。

{
  "applinks": {
    "apps": [],
    "details": [{
      "appID": "ABCDEBBQ.com.medium.ios",
      "paths": ["*"]
    }]
  }
}

如果您注意到上面 JSON 中的路径键,您会看到有一个星号或通配符。这只是意味着打开我网站域上的任何 URL。例如 www.medium.com/topposts 将在媒体 iOS 应用程序中打开。应该注意的是,您可以明确定义要包含或排除的路径。

在客户端 (Xcode),您必须在您的应用程序内部设置关联的域功能,并在这种情况下为您的域指定应用程序links 服务[=28= .com

最后,您必须在开发人员门户中将此功能添加到您的应用程序标识符中。

完成所有这些配置后,您现在应该在您的网站和应用程序之间有一个“link”。

Apple 在 iOS 内部处理所有这些逻辑,由于它是封闭源代码,我无法为您提供确切的实现细节,但仅当您访问该域时 (medium.com)在您的 iOS 设备上,它会从网络服务器下载 AASA 文件(AASA 文件必须托管在安全服务器上,并且只能通过 HTTPS 下载),然后操作系统会检查设备上是否有相应的应用程序匹配 AASA 文件中指定的 appId。如果路径和 appId 都匹配,则在 phone.

上启动媒体 iOS 应用程序

这就是它的工作原理。我希望我已经表达得足够好。