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

Flutter深度链接:未安装应用时跳转Google Play而非网站实现

实现深度链接未安装时跳转Google Play(无需Firebase动态链接)

要实现应用未安装时点击深度链接跳转Google Play,核心是配合AndroidManifest配置和网页端的跳转逻辑——当应用未安装时,系统会默认打开链接对应的网页,我们需要在网页中处理唤起失败的情况,自动跳转Play商店。

1. 确认AndroidManifest配置(保留现有配置,补充验证文件)

你的现有深度链接配置是正确的,只需确保android:autoVerify="true"对应的验证文件已部署到网站:

  • 在网站的/.well-known/assetlinks.json路径下放置验证文件,内容示例:
[{
  "relation": ["delegate_permission/common.handle_all_urls"],
  "target": {
    "namespace": "android_app",
    "package_name": "你的应用包名",
    "sha256_cert_fingerprints": ["你的应用签名SHA256指纹"]
  }
}]

这个文件用于让Android系统验证你的网站和应用的关联关系,确保深度链接能正确唤起已安装的应用。

2. 网页端添加跳转逻辑(关键步骤)

当用户点击深度链接且应用未安装时,浏览器会打开https://mycwc.org/xxx对应的网页,你需要在该网页中添加JavaScript代码,尝试唤起应用,若超时则跳转Google Play商店:

// 检测是否在移动设备环境中
function isMobile() {
  return /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
}

if (isMobile()) {
  // 拼接当前页面的深度链接路径
  const deepLink = "https://mycwc.org" + window.location.pathname + window.location.search;
  const startTime = Date.now();
  
  // 尝试唤起应用
  window.location.href = deepLink;
  
  // 设置超时检测:1.5秒内未唤起则跳转Play商店
  setTimeout(() => {
    if (Date.now() - startTime < 2000) {
      // 替换为你的应用在Google Play的链接
      window.location.href = "https://play.google.com/store/apps/details?id=你的应用包名";
    }
  }, 1500);
}
  • 注意替换代码中的应用包名为你实际的应用包名;
  • 超时时间可根据设备性能调整(1.5-2秒为合理区间)。

3. 测试注意事项

  • 确保assetlinks.json文件能被公开访问,可直接在浏览器中打开该URL验证文件有效性;
  • 测试时使用正式签名的应用包(debug包可能无法通过autoVerify验证);
  • 清除浏览器缓存后测试,避免旧跳转逻辑干扰结果;
  • 可用adb命令测试深度链接:adb shell am start -a android.intent.action.VIEW -d "https://mycwc.org/你的活动ID"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 09:52:23