iOS - 通用链接 - 防止浏览器中的重定向打开已安装的应用程序

问题描述

如果用户在 iOS 上安装了我们的移动应用程序,但通过 Safari 浏览器使用我们的网站。用户可以正常浏览网页,但是...

在结账/购买过程中,我们使用外部托管的卡支付服务,在输入卡后,将用户重定向到发卡机构的 3DS 身份验证服务,然后在完成后,用户重定向回我们的页面网站。

(~/cart.PHP?target=Payment_return)

在这种情况下,通用链接会介入并导致重定向链接打开我们安装的应用程序,而不是在网络浏览器中继续。 [这不会发生在安卓设备上] 这导致付款处理完成,但用户在结帐过程中丢失。

我们的 AASA 关联文件包含:

 "paths": ["NOT *target=product_search*","NOT /cart.PHP?target=payment_return*","*"]

但这种排除似乎并不受到尊重。

团队很困惑,希望得到任何建议。

很明显,这与用户上次打开我们网站或应用程序链接的方式有关,而 iOS 会“记住”该选择作为认选择; (如果用户最后选择是在浏览器中打开我们的链接,则不会发生这种情况);尽管如此,在浏览器中工作时的重定向是不受欢迎的,而且 AASA 排除似乎不起作用。

我们在这里遗漏了什么?或者肯定还有很多其他人在同一条船上?帮助。

tia.

解决方法

从文档中,参考 here

请注意,仅使用 URL 的路径组件进行比较。其他组件,例如查询字符串或片段标识符,将被忽略。

这可能就是不遵守排除规则的原因。

不知道你是否需要支持iOS 13以下,但如果你是针对iOS 13及以上版本,还是有希望的,check here详细文档。

在您的情况下,它可能类似于(我没有尝试过,只是为了给您一个想法):

{ "applinks": {
  "details": [
       {
         "appIDs": [...],"components": [
           {
              "/": "/cart.php*","?": { "target": "payment_return" },"exclude": true,"comment": "Matches any URL whose path starts with cart.php and which has a query item with name 'target' and a value payment_return"
           }
         ]
       }
   ]},...}

并且不要忘记在网站上更改 AASA 后重新安装应用程序。