You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android App Links跳转逻辑问题:需实现亚马逊式场景适配

解决方案:调整Asset Links配置+网站端控制

你的核心问题出在assetlinks文件中使用的delegate_permission/common.handle_all_urls权限——这个权限会强制系统将所有匹配域名的URL直接路由到你的App,完全跳过浏览器的判断逻辑,不管点击行为是来自站内还是站外。

要实现亚马逊的站内留浏览器、站外跳App的逻辑,需要做以下两步调整:

1. 修改Asset Links文件的权限关系

将delegate_permission/common.handle_all_urls替换为delegate_permission/common.handle_urls,修改后的assetlinks内容如下:

[
    {
        "relation": [
            "delegate_permission/common.handle_urls"
        ],
        "target": {
            "namespace": "android_app",
            "package_name": "com.example.com",
            "sha256_cert_fingerprints": [
                "CA:C0:...."
            ]
        }
    }
]

两者的核心区别:

  • handle_all_urls:强制所有匹配URL跳转App,浏览器无干预权
  • handle_urls:允许浏览器根据点击来源决定是否跳转App,站内点击时浏览器会默认保留在当前页面,站外点击则触发App跳转

2. 网站端补充控制(可选但更可靠)

为了确保站内链接100%留在浏览器,可以在网站的站内链接上添加以下处理:

  • 给所有站内链接添加rel="noopener noreferrer"属性,明确告诉浏览器不要触发外部App跳转
  • 或者通过JavaScript拦截站内链接的点击事件,强制使用window.location.href加载,绕过系统的App Links检测逻辑

为什么之前的尝试无效?

你之前在MainActivity处理referer、Manifest加过滤规则的思路方向不对——因为handle_all_urls权限会让系统在到达App的Intent处理逻辑之前就直接跳转App,所以App内的任何拦截都不会生效。只有先调整assetlinks的权限,让浏览器有权决定是否跳转,后续的控制逻辑才能起作用。

内容的提问来源于stack exchange,提问作者Melle Linschoten

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 14:54:25