首页 > 解决方案 > 如果应用程序已打开,则来自 expo-branch 的 Branch.subscribe 不会收到数据

问题描述

我成功地设置了 Branch.io,并在我订阅组件时成功接收了深度链接数据。为了使用发布包进行调试(仅适用于 android,生成:)expo build:android -t apk --release-channel test我存储接收到的数据并将其传递到文本视图中。

Branch.subscribe(bundle => {this.props.AuthStore.testData = JSON.stringify(bundle);});

有两种情况,一种工作,一种不工作:

(工作)你不打开应用程序→你导航到一些笔记(或gmail)→单击链接→应用程序打开,链接中的数据正在Branch.subscribe上提取

(不工作)你打开应用程序→你最小化应用程序→你导航到一些笔记(或gmail)→单击链接→应用程序打开但没有收到链接数据并且没有触发branch.subscribe

是否有一些我缺少的配置?我尝试订阅 AppStateChange (foreground|background) + 我尝试使用 await Branch.getLatestReferringParams() (在这两种情况下都没有成功)

请帮助并感谢您的阅读,希望这对其他人也有帮助。

标签: react-nativeexpobranch.io

解决方案


解决方案:使用来自 react-native 的链接。

当应用程序打开时,Branch 会获取第一个调用。如果应用程序在后台运行,则链接被不同的通信层中断,并且无法访问 Branch.io。这就是我的理解,这并不意味着我 100% 正确,这是基于大量的控制台日志、构建和调试。

因此您只需要调用分支链接处理代码。但是在后端,Branch 生成的链接需要包含 URL 中的参数,这样才能成为可行的解决方案,因为在使用 Linking 模块处理链接时,您不会从分支中获取对象包。


推荐阅读