【问题标题】:Deep link params are not passed through Mozilla Firefox and Opera to Android app深度链接参数不会通过 Mozilla Firefox 和 Opera 传递到 Android 应用程序
【发布时间】:2019-06-21 10:36:45
【问题描述】:

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

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

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

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

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

是否需要为 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
}

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

【问题讨论】:

    标签: android firebase react-native deep-linking firebase-dynamic-links


    【解决方案1】:

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

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

    如果您使用 firebase react native 包:import firebase from 'react-native-firebase',它还具有获取深层链接 url 的功能:deepLinkUrl = await firebase.links().getInitialLink()

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

    如果用户访问应用商店,这些参数将被条带化,如果用户在应用中打开链接,您将能够从该 url 中提取参数。

    我希望这个答案会有所帮助。 :)

    【讨论】:

    • 哇,我花了好几个小时才弄明白。感谢你的回答。顺便说一句,我的问题是从 Android Gmail inbuild webview 打开应用程序,我可以用这种方式修复它。
    猜你喜欢
    • 2015-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 1970-01-01
    相关资源
    最近更新 更多