Branch.subscribe 如果应用程序已经打开,则来自 expo-branch 的数据不会收到

Branch.subscribe from expo-branch doesn't receive the data if the app is already open

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

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

有两种情况,一种有效,一种无效:

(工作)你不打开应用程序 → 你导航到某个笔记(或 gmail)→ 单击 link → 应用程序打开并且正在提取 link 中的数据在 Branch.subscribe

(不工作)你打开应用程序 → 最小化应用程序 → 导航到某个笔记(或 gmail)→ 单击 link → 应用程序打开但未收到 link 数据branch.subscribe 未触发

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

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

解决方案:使用来自 react-native 的 Linking

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

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