react-native - 在反应原生动态链接中传递参数
问题描述
我@react-native-firebase/dynamic-links
用来处理 react native 应用程序中的 firebase 动态链接。
我创建了一个动态链接https://example.page.link/settings
,我希望有一个选项,我可以点击看起来像https://example.page.link/settings?account
或的链接,https://example.page.link/settings?notifications
它会将我带到设置内的帐户或通知屏幕。
使用:
dynamicLinks().onLink(async (link) => {
console.log({ link });
});
当我点击时https://example.page.link/settings?account
,我只收到一个包含url
(不包含参数 - 只是https://example.page.link/settings
)和 minimumAppVersion 的对象。
我注意到,如果我在 firebase 控制台中创建一个短链接,https://example.page.link/settings
并且在第二步中我将https://example.page.link/settings?account
其作为深度链接,那么当我单击一个短链接时,我会收到带有account
参数的链接,但这并不能解决我的问题因为我必须使用具有硬编码参数的不同深度链接创建一个单独的短链接
Firebase dynamic links
如果我想在我的应用程序中查看参数,或者对于这个用例,我将不得不使用自定义解决方案而不使用 firebase,那么使用这个的正确方法是什么?
解决方案
对于使用动态链接的嵌套导航,我们可以以我们可以访问的方式创建链接以导航到特定屏幕。
例如,如果我们需要导航到设置屏幕,然后是帐户屏幕或通知屏幕,我们必须设置 URL 以导航到特定屏幕。
试试下面的链接
https://example.page.link/settings/account
而不是之前的尝试
https://example.page.link/settings?account
我们还可以使用深度链接通过 react-navigation 打开特定屏幕。
查看 react-navigation 的官方文档以实现深度链接:
推荐阅读
- stored-procedures - 可以在 FOR 循环中使用 WHENEVER NOT FOUND 处理程序吗
- scala - 是否有 Scala 内置缓存类
- hyperledger-fabric - Hyperledger composer 在升级网络时卡住了
- python - 将 float pandas 列转换为 int 给我 -2147483648(特定于平台的错误)
- swagger - 如何告诉 dropwizard-swagger/swagger-ui 资源方法上没有请求正文?
- sharepoint-2013 - Sharepoint 2013:创建一个脚本以在我添加新字段时更新列表视图
- grails - 查找带有“+”的电子邮件时,通过电子邮件获取失败
- docker - 使用 env_file 在 docker-compose.yml 中设置构建参数
- scala - Gatling 负载均衡 IP 哈希 Nginx
- ruby-on-rails - Rails Sprockets 文件使用本地清单作为摘要而不是资产主机版本