深层 link 参数不会通过 Mozilla Firefox 和 Opera 传递给 Android 应用程序

Deep link params are not passed through Mozilla Firefox and Opera to Android app

我正在尝试打开在 Firebase Deep Linking 服务上注册了已创建的 Deep link 的应用程序。除了原始的 link,我正在尝试将一些额外的参数传递给应用程序以处理此 link。

比如我有一个link:https://my-custom.page.link/page?page=place&id=1001126

link https://my-custom.page.link/page 已在 Firebase 服务上注册并且 ?page=place&id=1001126 是自定义参数。

由于我们正在构建一个 react-native 应用程序,这在 IOS 应用程序的所有浏览器上都按预期工作。在 Android 应用程序上,它在 Google 浏览器上按预期工作,但在 Firefox 或 Opera 上没有。

在 Android Firefox 和 Opera 浏览器上,当我单击 link 时,它会被重定向到我的应用程序,但不会向其传递其他参数。

是否需要为 Android 项目设置任何其他配置来修复此行为?

在我记录从 react-native Linking.getInitialURL() 返回的数据后,我得到了 null。

import { Linking } from 'react-native'


.
.
.

async componentDidMount () {
    const deepLinkUrl = await Linking.getInitialURL()
    console.warn('deepLinkUrl => ', deepLinkUrl) // IOS: correct payload Object, Android: null - Firefox and Opera
}

我希望在两个平台上都能获得正确的数据负载。

我在使用 Firebase Dynamic links 时遇到过类似的问题。 不幸的是,我无法使用这种方法从 Mozilla 和 Opera 浏览器传递参数。

但是我发现这样做的方式很老套。

如果你使用 firebase react native 包:import firebase from 'react-native-firebase',它也有深入的功能 link url : deepLinkUrl = await firebase.links().getInitialLink()

使用此功能,您将从 Firebase Dynamic Link 获取 App Store url。 想法是以编码参数的方式通过 App Store url 传递参数,例如 https://yourlink.page.link/?link=https://play.google.com/store/apps/details?id%3Dcom.yourapp%26param1%3Dvalue%26param2%3Dvalue...

如果用户进入应用商店,这些参数将被条带化,如果用户在应用中打开 link,您将能够从这个 url 中提取参数。

希望这个回答对您有所帮助。 :)