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
相关产品推荐
相关产品推荐

