我正在尝试打开在 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
}
我希望在两个平台上获得正确的数据负载。
最佳答案
我在使用 Firebase 动态链接时遇到了类似的问题。 不幸的是,我无法使用这种方法从 Mozilla 和 Opera 浏览器传递参数。
但是我发现了一种很奇怪的方法。
如果您使用 firebase React Native 包:import firebase from 'react-native-firebase'
,它还具有获取深层链接 url 的功能:deepLinkUrl = wait 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...
如果用户访问应用商店,这些参数将被 strip 化,并且如果用户打开应用中的链接,您将能够从此网址提取参数。
希望这个答案对您有所帮助。 :)
关于android - 深层链接参数不会通过 Mozilla Firefox 和 Opera 传递到 Android 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56701785/