3

假设我有两个域 - example.com 和 ex.co

example.com上,我为iOS 9配置了 Universal Links ,我的apple-app-site-association文件未签名,如下所示:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": "JUSTEXAMPLE.com.example.app",
        "paths": [
          "link/example*"
        ]
      }
    ]
  }
}

我的申请也有com.apple.developer.associated-domains条目 -applinks:example.com

如果您单击example.com/link/example?param=value(应用程序打开) ,一切正常


但我想做下一件事:

  1. 用户点击 ex.co/abc
  2. 用户获取 301 标头(永久重定向),其中 example.com/link/example?param=value 作为位置
  3. 应用程序打开,每个人都很开心

第一个和第二个执行得很好,但在第三个我只得到一个空白页面,顶部有一个小横幅,上面写着“你想在应用程序中打开这个页面吗?” 和大“打开”按钮

PS:两个网站都使用有效的 HTTPS

PPS:我不能apple-app-site-associationex.co 制作,因为它会有很多短链接,这些链接会重定向到example.com上不同应用的不同页面

4

1 回答 1

2

iOS 上的 Safari(9...谁知道下周会发生什么!)仅在用户实际采取特定操作打开 URL 时才响应通用链接。这是一个轻微的概括,但基本上是一个很好的指导方针。301 重定向不符合条件,这就是您的应用无法打开的原因。

您可以使用的一种解决方法(我们在Branch.ioex.co使用)是为域上的每个应用程序使用唯一的路径段(而不是ex.co/abc,您将拥有ex.co/uniqueappid/abc)。然后,您可以根据uniqueappid每个应用分别触发通用链接。

于 2016-06-11T05:56:49.407 回答