IOS Apple Universal Links 随机失败

问题描述

我们有一个应用程序使用通用链接功能并且大部分时间都可以工作,但在某些情况下,特别是在全新安装和随机情况下,当用户点击电子邮件上的深层链接时,移动应用程序不会打开,并且Web 浏览器会改为执行此操作。 该应用支持 iOS 12.2 及更高版本。

我们的设置是这样的:

  1. 目前 aasa 文件托管在 .well-kNown 文件夹和服务器上的根文件夹中,内容类型为 json。

  2. 文件格式如下:

{
  "webcredentials": {
    "apps": [
      "TeamID.bundleId"
    ]
  },"applinks": {
    "apps": [],"details": [
      {
        "appID": "TeamID.bundleId","paths": [
          "/reset-password/*","/confirm-email/*"
        ]
      },{
        "appIDs": [
          "TeamID.bundleId"
        ],"components": [
          { "/": "/reset-password/*" },{ "/": "/confirm-email/*" }
        ]
      }
    ]
  }
}
  1. 我们在项目代码添加了对应的关联域

正如我之前所说,它在大多数情况下都可以正常工作,但在某些随机情况下却没有。 我怀疑是在失败的情况下无法下载aasa文件,但我不确定。

有人遇到过同样的问题吗?非常感谢任何帮助。

解决方法

打开通用链接不是很容易的过程。

首先 - 如果它是新安装的应用程序并且尚未打开 - 系统 (iOS) 不知道您的应用程序是否支持 UL - 应用程序必须至少启动一次。

下一个 - 如何打开链接取决于用户(和系统决定) - 用户可以通过应用程序获得有关打开 UL 的问题 - 并决定不使用此选项 - 它将在浏览器和系统中打开现在总是可以在浏览器中打开这些 UL,反之亦然,如果用户使用 app 打开它。之后就很难改变这种行为了。

AASA 文件在应用程序启动时下载,正如我之前测试过的 - 它存储在系统中,直到下一个将被下载(更新),所以如果有时应用程序无法下载 - 没有任何变化(除非它是首次启动并首先尝试下载 aasa 文件。

如果您尝试打开一些未在 aasa 文件中显示的链接,可能会出现一些问题,但我认为这不是您的情况。

您的 aasa 文件没有问题。