react-native - 如果应用程序已打开,则来自 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 的链接。
当应用程序打开时,Branch 会获取第一个调用。如果应用程序在后台运行,则链接被不同的通信层中断,并且无法访问 Branch.io。这就是我的理解,这并不意味着我 100% 正确,这是基于大量的控制台日志、构建和调试。
因此您只需要调用分支链接处理代码。但是在后端,Branch 生成的链接需要包含 URL 中的参数,这样才能成为可行的解决方案,因为在使用 Linking 模块处理链接时,您不会从分支中获取对象包。
推荐阅读
- ruby-on-rails - 如何在运行时动态设置 OmniAuth 范围?
- vue.js - Vue 无法导入“wasm”文件
- visual-c++ - 如何根据版本加载 DLL?
- php - 此路由不支持 POST 方法。支持的方法: GET、HEAD 在 laravel 5.8
- javascript - 未定义错误窗口以在节点 js 中定义动态变量
- c++ - 遍历模板参数
- javascript - 将变量从函数传递到函数内的函数
- rabbitmq - 具有有效凭证的非来宾用户拒绝 RabbitMQ Web 管理控制台访问
- javascript - 如何将通过 AJAX 请求接收的 XML 文本转换为文件
- javascript - 从阵列深度检查中删除重复对象