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

Android App links 技术咨询:如何让已在网站的用户点击指定链接时继续停留在网站而非跳转至App

嗨,我来帮你搞定这个问题!你碰到的是App Links配置里很常见的场景——我们需要区分「外部来源的跳转请求」和「网站内部的页面跳转」,不让后者触发App的跳转逻辑。

核心思路是在网站端做判断控制,因为App Links是系统层面的触发机制,App本身没法识别用户是不是从你的网站内部点的链接,所以得从前端下手:

  • 第一步,给那些需要控制跳转的链接(比如List、Item页面的链接)添加点击事件监听。
  • 第二步,判断当前用户是否正处于你的网站域名下:用window.location.hostname就能拿到当前页面的域名,和你的网站域名对比就行。
  • 第三步,如果是网站内部的用户点击,就阻止默认的链接跳转行为(避免触发系统的App Links检测),改用网站内部的跳转方式打开页面——比如原生JS的window.location.href,或者如果你用了React Router、Vue Router这类前端路由框架,直接用框架的内部路由跳转方法(比如router.push())。

给你举个原生JS的实现例子,方便你参考:

// 假设你的List、Item链接都加了class="app-target-link"
document.querySelectorAll('.app-target-link').forEach(link => {
  link.addEventListener('click', function(e) {
    // 替换成你自己的网站域名
    const myWebsiteDomain = 'your-actual-domain.com';
    if (window.location.hostname === myWebsiteDomain) {
      e.preventDefault(); // 阻止默认跳转,避免触发App Links
      window.location.href = this.href; // 用网站内部跳转打开页面
    }
    // 如果是外部来源(比如短信、微信里点的链接),啥也不用做,正常触发App跳转
  });
});

如果你的网站是单页应用(SPA),那更简单:直接把这些List、Item的链接配置成前端路由的内部跳转,不要用传统的<a>标签跳转。因为前端路由是在JS层面处理页面切换,不会发起完整的URL请求,自然不会触发系统的App Links匹配逻辑,用户就会一直停留在网站里。

另外补充一句:App端的intent-filter其实没法处理这个场景,因为系统触发App Links时,App拿不到用户点击链接的来源页面信息,所以核心的控制逻辑一定要放在网站端哦。

内容来源于stack exchange

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.08 13:53:12