我们有一项任务要求处理 flutter firebase 动态链接版本 4.3.7 的自定义参数(在对先前版本进行了重大更改之后)。
挑战:flutter firebase 动态链接文档没有任何关于此自定义的内容。
使用下面提到的代码解码您的动态短链接。之后,您可以根据您的要求使用该查询参数。
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;
}
短动态链接 https://domain.link/dynamiclinktest <- we found that this one is not customisable. (如果是请在下面评论)。
长动态链接是可定制的。
在正常情况下,您可以通过添加额外参数来编辑此链接,例如 /?actionType=invoiceType&invoiceId=99,在大多数情况下它会起作用。但在 firebase 动态链接处理过程中,此链接的处理方式有所不同,并且附加参数被完全忽略。
解决方案: 对 url 进行编码和解码,以便 firebase 理解您在链接中传递的额外参数。
处理动态 url 时,您现在将收到带有参数 actionType 和 invoiceId 的链接。
现在,flutter firebase 动态链接可以根据您的需要进行自定义。
可以在 Firebase 控制台 -> 动态链接 -> 创建链接并单击“链接详细信息”后找到链接