getInitialLink 不起作用,但 onLink 在 react-native-firebase v6 中工作
Posted
技术标签:
【中文标题】getInitialLink 不起作用,但 onLink 在 react-native-firebase v6 中工作【英文标题】:getInitialLink is not working but onLink is working in react-native-firebase v6 【发布时间】:2020-02-14 18:16:27 【问题描述】:我在 App.js 中使用以下代码 - componentDidMount
firebase
.dynamicLinks()
.getInitialLink()
.then(link =>
if (link)
if (link.url.includes('/s/'))
this.handleSignupURL(link.url)
)
firebase.dynamicLinks().onLink(( url ) =>
if (url && url.includes('/s/'))
this.handleSignupURL(url)
)
点击动态链接时:当应用程序处于活动状态时,会触发 onLink 处理程序并且应用程序会正确处理它。但是当应用程序关闭时,getInitialLink 返回 null。获取初始链接的任何解决方案?
我正在使用 react-native-firebase v6,react-native 对应 expo 36。安装按照新的 react-native-firebase quick start 执行。我正在使用 ios 应用程序。
【问题讨论】:
【参考方案1】:我现在在 iOS 上也遇到了这个问题。我不确定这是否是一个很好的解决方法,因为我还没有投入生产,但是当应用程序不在后台时,我可以在 iOS 上工作的一种方法是使用来自 RN 的 Linking 包,就像在我的启动画面中一样:
Linking.getInitialURL().then((url) =>
if (url)
Linking.openURL(url).then((response) =>
Actions.reset('MainFeed');
);
else
console.log('no url');
Actions.reset('MainFeed');
);
然后在 MainFeed 屏幕上的 componentDidMount 上,我为 onLink 设置了一个侦听器。由于我们现在在应用程序打开时调用 openURL,因此来自 firebase 的 onLink 触发,我能够解析深层链接并将用户路由到他们需要去的地方。
我还没有测试过这种方法是否允许链接到持久的应用商店安装
编辑:我已经对此进行了测试,并且它一直有效。该链接通过应用商店/谷歌播放下载仍然存在
【讨论】:
以上是关于getInitialLink 不起作用,但 onLink 在 react-native-firebase v6 中工作的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 动态链接 - 从 Play 商店安装应用程序后无法在 android 中获取 Url
Angular 的 $http.post 不起作用,它的 $http... 也不起作用,但 jQuerys ajax 起作用。为啥?
Laravel Admin 路由不起作用,但其他路由不起作用