Flutter中带参应用商店链接能否在安装后获取参数?
核心结论
Flutter场景下完全可以实现需求:用户点击带自定义参数(联盟推广码、邀请ID等)的分享链接跳转应用商店,安装完成首次打开App时,是能拿到链接里预先携带的参数的,这个能力依托**延迟深度链接(Deferred Deep Linking)**机制实现,双端原生基础能力如下:
- Google Play 原生提供Install Referrer接口,链接中携带的自定义参数、渠道标识会在用户安装后首次启动时直接透传给App,参数不会丢失,匹配准确率100%
- Apple App Store 没有提供直接的跨安装参数透传接口,需要通过通用链接(Universal Links)搭配归因匹配逻辑才能拿到对应参数
Flutter侧实现方案
方案1:使用官方动态链接插件(适配成本最低)
直接接入Flutter官方维护的firebase_dynamic_links插件就能覆盖双端需求,不需要自己写大量原生适配代码:
- 提前生成携带自定义参数的动态链接,把联盟推广码、活动标识等你需要透传的内容存在链接参数里
- 未安装App的用户点击链接时,会自动跳转到对应区域的Google Play或App Store下载页
- 用户安装完成首次打开App时,插件会自动完成链路匹配,直接返回你之前存在链接里的自定义参数,业务层直接拿到用就行
- 配置时注意Android端要配置对应intent filter,iOS端要开启Associated Domains权限,按照插件文档的步骤配置即可正常使用
方案2:自行封装原生逻辑(不依赖第三方服务)
如果不想接入Firebase相关服务,也可以自己封装双端原生逻辑实现:
- Android端:直接对接Google Play Install Referrer API,App首次启动时调用接口读取安装来源中携带的自定义参数即可,实现简单准确率高
- iOS端:因为系统层没有提供直接读取安装来源参数的接口,可以自己搭轻量归因服务:用户点击分享链接时,服务端记录访问设备的IP、系统版本、设备型号等特征信息,用户首次打开App时上传相同的设备特征到服务端做匹配,就能拿到对应的推广参数,这种方案在非极端场景下准确率能到90%以上,满足大部分推广场景需求
注意事项
- 不要用普通的URL Scheme做这个需求,Scheme只能唤起已经安装的App,用户未安装跳转商店后,无法关联上之前的链接参数
- iOS端如果用户开启了「阻止跨网站跟踪」权限,基于Cookie的网页匹配方案会失效,优先走通用链接的归因逻辑
- 链接里不要存放敏感信息,所有透传的推广参数都可以被抓包获取,只放非敏感的推广类标识即可
内容的提问来源于stack exchange,提问作者Mike CHOKKI
相关产品推荐
相关产品推荐

