2023年Flutter/App开发:无Firebase Dynamic Links的好友推荐方案
Firebase Dynamic Links停用后的Flutter好友推荐替代方案
针对你的需求,不需要额外第三方服务商的前提下,推荐以下两种可控的替代方案,均基于Flutter原生生态和系统内置能力实现:
方案一:自定义深度链接 + 自建轻量后端(最稳定可控)
这种方案完全掌握在自己手里,没有第三方依赖风险:
- 配置平台级关联链接
- Android:配置App Links,在你的域名下放置
/.well-known/assetlinks.json文件,同时在AndroidManifest.xml中添加对应的<intent-filter>,实现点击域名链接直接唤起App,未安装则跳转应用商店。 - iOS:配置Universal Links,在域名下放置
/.well-known/apple-app-site-association文件,在Info.plist中开启Associated Domains权限,实现同样的唤起/跳转逻辑。
- Android:配置App Links,在你的域名下放置
- 生成带邀请信息的链接
用自建的轻量后端(比如Node.js/Go或Nginx重定向规则)生成邀请链接,格式类似https://your-domain.com/invite?inviter_id=xxx&sig=xxx,其中sig是邀请ID的签名,用于防止参数伪造。后端可根据访问设备的UA,直接重定向到对应的应用商店链接或App唤起链接。 - Flutter端逻辑处理
- 用
uni_links包监听App启动或后台唤起时的链接参数,解析出inviter_id。 - 拿到邀请ID后,调用自己的业务接口完成好友关联逻辑(比如写入数据库)。
- 用
- 分享功能实现
用share_plus包将生成的邀请链接包装成WhatsApp等渠道支持的分享内容,直接分享给联系人。
方案二:静态网页中转 + Flutter原生包(无后端极简版)
如果不想搭建后端,可通过静态网页做中转,实现轻量化的方案:
- 部署静态中转页
在自己的服务器上部署一个静态HTML页面,页面逻辑:尝试通过yourapp://invite?inviter_id=xxx唤起App,若一定时间内唤起失败,则自动跳转到对应平台的应用商店链接。 - 生成分享链接
生成格式为https://your-domain.com/invite-page?inviter_id=xxx的链接,分享给联系人。 - Flutter端处理
同样用uni_links包监听并解析链接中的邀请ID,完成好友关联。
关键注意事项
- 参数安全:务必对邀请ID做签名校验,避免恶意用户伪造参数刷邀请关系。
- 平台配置验证:Android和iOS的关联链接配置完成后,需通过各自平台的验证工具确认配置生效,避免出现唤起失败的情况。
- 包依赖选择:
uni_links和share_plus都是Flutter生态中维护活跃的官方推荐包,依赖复杂度低,不会引入额外成本。
内容的提问来源于stack exchange,提问作者Timo
相关产品推荐
相关产品推荐

