如何在动态链接中传递参数?
Posted
技术标签:
【中文标题】如何在动态链接中传递参数?【英文标题】:How do I pass Parameters in Dynamic Links? 【发布时间】:2020-02-15 18:34:36 【问题描述】:flutter中如何从firebase动态链接接收参数?
我创建了一个短网址:
https://subdomain.example.com/product
指向
https://example.com/view-product
但我想添加一个 url 查询参数,例如:
https://example.com/view-product?id=56
请注意,“56”是可变的,并且会在应用流程中动态变化。我无法接收到这个“id”参数。
在浏览器上我尝试输入https://subdomain.example.com/product?id=56
我收到了链接:https://example.com/view-product
FirebaseDynamicLinks.instance.onLink(
onSuccess: (PendingDynamicLinkData dynamicLink) async
final Uri deepLink = dynamicLink?.link;
showModalBottomSheet(context: context, builder: (context)
return Container(
height: 100.0,
child: Text(deepLink.toString()),
);
);
if (deepLink != null)
debugPrint("Link found on line: "+deepLink.queryParameters.toString());
, onError: (OnLinkErrorException e) async
print('onLinkError');
print(e.message);
);
【问题讨论】:
您需要按照文档中的说明构建链接。 @creativecreatorormaybenot 我看不懂文档。我需要在运行时创建链接吗?我应该如何使用 Firebase 控制台? @creativecreatorormaybenot 你能帮上忙吗?谢谢 【参考方案1】:我终于明白了!
我在这里完全错误地理解了这个概念。
目前有 4 种方法可以创建动态链接。
1) Firebase Console
2) Manually
3) Rest API
4) Dynamic Link Builder API on ios and android
我在这里做错的是,我从 firebase 控制台创建了 https://subdomain.example.com/product 一个动态链接,并针对手动创建的链接对其进行了测试。
第二种方法(手动)更强大的是您需要从您的网站链接中链接动态内容。
https://your_subdomain.page.link/?link=your_deep_link&apn=package_name[&amv=minimum_version][&afl=fallback_link]
以上是创建动态链接的标准手动程序。
让我们分解上面的链接,让它看起来不那么可怕:
https://your_subdomain.page.link ==> 这只是您在 Firebase 控制台上注册的子域。在我们的例子中是https://subdomain.example.com
link=your_deep_link ==> your_deep_link 基本上是您的深层链接(您要打开的链接存在于您的服务器上,它可以包含您需要的所有参数)。在我们的例子中是https://example.com/view-product?id=56。但请注意,此链接将嵌入到 url 中,因此需要先进行 urlencoded。为此目的使用任何 url 编码器。生成的编码字符串变为
https%3A%2F%2Fexample.com%2Fview-product%3Fid%3D56
apn=package_name ==> IOS 或 Android 各自的软件包名称
[&amv=minimum_version] ==> "[]" 将其表示为可选参数。此参数是您希望您的应用响应此动态链接的应用的最小版本号(如果您希望所有版本都支持,则为 0)
[&afl=fallback_link] ==> ==> "[]" 将其表示为可选参数。这是后备 url,再次 url 编码。可能是您的 android play 商店链接。
所以我们最终的动态链接看起来像:
https://subdomain.example.com/?link=https%3A%2F%2Fexample.com%2Fview-product%3Fid%3D56&apn=com.example&amv=0
【讨论】:
它功能强大,但对于需要在其内容中使用动态链接的文案作者来说完全不可能。他们不能以编程方式生成他们的 URL;我只是想让他们理解将 ID 参数添加到 URL 前缀。 我想知道我是否可以在将文章添加到 Firestore 时使用 REST API 生成动态链接? @LeeProbert 一个简单的JS函数我觉得也能做到 @PushanGupta Firebase 控制台上的 URL 是什么? 欲了解更多信息:firebase.google.com/docs/dynamic-links/create-manually以上是关于如何在动态链接中传递参数?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter:使用 Firebase 动态链接,有人可以告诉我如何通过链接传递参数列表以及如何接收它吗?
适用于 iOS 的 Firebase 动态链接 - 查询参数未从 iTunes Store 传递