问题描述
如果用户在 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 后重新安装应用程序。