Flutter跨平台动态链接实现及Firebase Dynamic Links免费替代方案咨询
Flutter跨平台深度链接+安装归因实现方案
一、核心实现逻辑
你要的三个场景本质是深度链接唤起应用 + 安装后归因跳转,核心流程如下:
- 生成分享内容:在Flutter内生成带商品参数的深度链接,再通过二维码生成库转成二维码供用户分享。
- 跳转分流:
- 已安装应用:通过Android的App Links或iOS的Universal Links直接唤起应用,应用解析链接参数跳转到对应商品页。
- 未安装应用:链接先跳转到中转页面,检测设备后引导至对应应用商店,同时留存商品参数;用户安装后首次启动应用时,读取归因参数跳转至商品页。
二、Firebase Dynamic Links的免费替代方案
1. Branch.io(免费版)
这是目前最成熟的替代方案,免费版每月支持10万次点击,完全覆盖你的需求,Flutter有官方插件支持。
- 集成步骤:
- 在Branch后台配置App Links/Universal Links,绑定你的应用包名/ID。
- 集成
branch_io插件到Flutter项目,初始化时获取跳转参数:import 'package:branch_io/branch_io.dart'; void initBranch() async { await BranchIO.init('你的Branch后台Key'); final params = await BranchIO.getLatestReferringParams(); if (params['product_id'] != null) { // 跳转商品页示例 // Navigator.pushNamed(context, '/product', arguments: params['product_id']); } } - 生成带商品参数的分享链接:
Future<String> generateProductShareLink(String productId) async { final linkProps = LinkProperties(channel: 'app_share', feature: 'product'); final controlParams = ControlParams(product_id: productId); return await BranchIO.generateShortUrl(linkProps, controlParams); } - 用
qr_flutter插件把链接转成二维码:import 'package:qr_flutter/qr_flutter.dart'; QRImageView( data: generatedShareLink, size: 200, version: QRVersions.auto, )
2. 自定义方案(完全免费)
如果你不想依赖第三方服务,可以自己搭建中转页+原生深度链接配置,完全可控:
- 配置原生深度链接:
- Android:在
AndroidManifest.xml中添加intent-filter配置App Links,同时在你的域名下上传assetlinks.json文件验证关联。 - iOS:在Xcode中开启「Associated Domains」,添加
applinks:你的域名,并在域名下上传apple-app-site-association文件。
- Android:在
- 搭建中转页:
用静态HTML页面(可部署在Vercel、Netlify等免费平台),通过JS判断用户设备:- 若检测到已安装应用,直接唤起深度链接(如
yourapp://product?id=xxx); - 未安装则跳转到对应应用商店,Android带上
referrer参数(如play.google.com/store/apps/details?id=你的包名&referrer=product_id=123),iOS跳App Store链接。
- 若检测到已安装应用,直接唤起深度链接(如
- 应用端读取参数:
- Android:用
install_referrer插件读取Play Store的referrer参数; - iOS:通过
UIApplicationDelegate的continueUserActivity方法获取Universal Links参数; - 应用启动时解析参数,跳转至对应商品页。
- Android:用
三、注意事项
- 不管用哪种方案,都需要确保App Links/Universal Links配置正确,否则无法直接唤起已安装的应用。
- 自定义方案中,Android的referrer参数可能存在延迟,建议配合后端存储用户点击记录(用设备标识关联),提升归因准确性。
内容的提问来源于stack exchange,提问作者Goodnickoff
相关产品推荐
相关产品推荐

