Flutter firebase 动态链接在处理应用程序上的 url 时使用自定义参数自定义链接

问题描述 投票:0回答:2

我们有一项任务要求处理 flutter firebase 动态链接版本 4.3.7 的自定义参数(在对先前版本进行了重大更改之后)。

挑战:flutter firebase 动态链接文档没有任何关于此自定义的内容。

flutter firebase deep-linking firebase-dynamic-links ios-universal-links
2个回答
0
投票

使用下面提到的代码解码您的动态短链接。之后,您可以根据您的要求使用该查询参数。

FirebaseDynamicLinks dynamicLinks = FirebaseDynamicLinks.instance;

  PendingDynamicLinkData? pendingDynamicLinkData =
      await dynamicLinks.getDynamicLink(Uri.parse("<YOUR_DYNAMIC_LNK>"));
  if (pendingDynamicLinkData != null &&
      pendingDynamicLinkData.link.hasQuery) {
    final queryParametersAll =
        pendingDynamicLinkData.link.queryParametersAll;
   
  }

-1
投票

短动态链接 https://domain.link/dynamiclinktest <- we found that this one is not customisable. (如果是请在下面评论)。

长动态链接是可定制的。

https://domain.link/?link=https://domain.link/&apn=com.domain.app&afl=https://google.com&isi=12345678&ibi=com.domain.app.uat&ifl=https:/ /google.com

在正常情况下,您可以通过添加额外参数来编辑此链接,例如 /?actionType=invoiceType&invoiceId=99,在大多数情况下它会起作用。但在 firebase 动态链接处理过程中,此链接的处理方式有所不同,并且附加参数被完全忽略。

解决方案: 对 url 进行编码和解码,以便 firebase 理解您在链接中传递的额外参数。

尝试: https://domain.link/?link=https%3A%2F%2Fdomain.link%2F%3FinvoiceId%3D99%26actionType%3DinvoiceType&apn=com.domain.app&afl=https://google.com

处理动态 url 时,您现在将收到带有参数 actionTypeinvoiceId 的链接。

现在,flutter firebase 动态链接可以根据您的需要进行自定义。

可以在 Firebase 控制台 -> 动态链接 -> 创建链接并单击“链接详细信息”后找到链接

© www.soinside.com 2019 - 2024. All rights reserved.