Flutter中APP已打开时从Firebase动态链接提取数据的方法
解决Firebase动态链接内置扫码器数据提取问题
当APP已处于打开状态时,内置扫码器扫到的Firebase动态链接只是短链本身,不会自动触发Firebase的深层解析,你需要手动调用Firebase Dynamic Links的API来解析这个短链,提取里面的跳转数据。以下分平台给出具体实现:
安卓平台
- 确保项目已正确集成Firebase Dynamic Links SDK
- 在扫码成功获取到动态链接URL后,调用SDK的解析方法:
// 假设扫码得到的链接字符串为scanLink val uri = Uri.parse(scanLink) FirebaseDynamicLinks.getInstance() .getDynamicLink(uri) .addOnSuccessListener { pendingDynamicLinkData -> // 解析成功,获取深层链接或参数 val deepLink = pendingDynamicLinkData?.link deepLink?.let { // 这里处理深层链接,比如提取参数、跳转指定页面 val targetPage = it.getQueryParameter("page") // 执行页面跳转或业务逻辑 } } .addOnFailureListener { e -> // 解析失败处理 Log.e("DynamicLink", "解析动态链接失败", e) }
iOS平台
- 确保项目已正确集成Firebase Dynamic Links SDK
- 在扫码成功获取到动态链接URL后,调用SDK的解析方法:
// 假设扫码得到的链接为scanURL if let url = scanURL { FIRDynamicLinks.dynamicLinks()?.handleUniversalLink(url) { dynamiclink, error in guard error == nil, let dynamiclink = dynamiclink, let deepLink = dynamiclink.url else { // 解析失败处理 return } // 解析成功,处理深层链接 let targetPage = deepLink.queryParameters?["page"] // 执行页面跳转或业务逻辑 } }
不管APP是处于前台活跃状态还是后台挂起状态,只要拿到动态链接的URL,通过上述方法就能解析出其中的深层数据,进而完成页面跳转或对应业务逻辑处理。
内容的提问来源于stack exchange,提问作者Deekshith Xetty
相关产品推荐
相关产品推荐

