如何解决如果应用程序已经打开,来自 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-native 中的 Linking。
Branch 在应用打开时获取第一个调用。如果应用程序在后台运行,链接会被不同的通信层中断,无法访问 Branch.io。这就是我的理解,这并不意味着我 100% 正确,这是基于大量的 console.logs、构建和调试。
因此您只需要调用分支链接处理代码。但是在后端,分支生成的链接需要在 URL 中包含参数,以便这是可行的解决方案,因为在使用链接模块处理链接时,您不会从分支获取对象包。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。