0

我们在我们的 ios APP 中添加了关联的域,如下所示:

<string>webcredentials:*.mywebsite.com</string>
<string>applinks:*.mywebsite.com</string>

我们还为我们所有的子域上传了 apple-app-site-association 文件。如下所示:

{
   "applinks": {
      "apps": [],
      "details": [
         {
            "appID": "XXXXX.com.mywebsite.www",
            "paths": [
               "NOT /whatever",
               "some other paths here",
               "/"
            ]
         }
      ]
   },
   "webcredentials": {
      "apps": [
         "XXXXX.com.mywebsite.www"
      ]
   }
}

如果用户单击链接到www.mywebsite.com的 google 页面上的 url ,它会正常工作,它将打开 APP。

但我的问题是,如果我们有一个 subdomainA.mywebsite.com/test.html,像这样:

<a href="https://www.mywebsite.com/">HOME</a>

如果用户单击链接,它也会打开 APP,这不是我想要的。

所以我的问题是,如果在 subdomainA 上用户单击链接到 subdomainB 的 url,并且 url 的路径已在应用程序站点关联文件中注册,我该如何禁用打开 APP 的通用链接。ios能知道它们只是子域所以不要打开APP吗?

4

2 回答 2

0

您可以通过将 AASA 文件中的路径列入黑名单来禁用通用链接。在 AASA 文件中的路径之前添加NOT不会触发为您的 url 打开应用程序。

{
"applinks": {
    "apps": [ ],
    "details": [
        {
            "appID": "XXXXX.com.mywebsite.www",
            "paths": [ "http://www.mywebsite.com/", "NOT http://www.subdomainA.mywebsite.com/test.html"]
        }
    ]
  }
}

这是相同的苹果文档: Universal Links

于 2020-10-30T07:48:20.840 回答
0

我们最终向苹果寻求帮助。正如我所料,我们不能告诉 Apple/IOS 不要在具有相同通用链接的两个子域之间启动 APP。我们唯一能做的就是,如果在子域 B 中有一个指向子域 A 的 url 链接,并且这个 url 是通用链接,我们必须在 url 中添加一些特殊的查询或哈希,例如 url?within_subdomains=1,然后在 AASA 文件中,我们添加“NOT *within_subdomains=1”,

于 2020-11-30T05:19:23.740 回答