React Navigation v5:如何与 Branch.io 一起使用

2024-03-24

我们有一个利用 Branch.io 通用链接的应用程序。按照以下文档:https://help.branch.io/developers-hub/docs/react-native#read-deep-link https://help.branch.io/developers-hub/docs/react-native#read-deep-link

在react-native应用程序上,您设置了一个订阅者来接收javascript运行时中的深层通用链接。

使用最新的react-navigation从这里:https://reactnavigation.org/docs/deep-linking https://reactnavigation.org/docs/deep-linking

React Navigation 希望原生处理深层链接。 React Navigation 似乎没有提供手动启动链接的好方法。

我如何同时使用这两项服务?事实证明,获取深层链接并将其分解为可路由的深层链接具有挑战性。我们的应用程序具有嵌套路由器,并且重新进行从路径到屏幕和参数的转换是我不想做的事情。最近有人这样做过吗?谢谢。


您可以使用以下命令通知 React Navigation 有关传入链接的信息subscribe option:

const linking = {
  // Custom susbcription to handle incoming links
  subscribe(listener) {
    branch.subscribe(({ error, params, uri }) => {
      if (error) {
        console.error('Error from Branch: ' + error);
        return;
      }

      if (params['+non_branch_link']) {
        const nonBranchUrl = params['+non_branch_link'];
        // Route non-Branch URL if appropriate.
        return;
      }

      if (!params['+clicked_branch_link']) {
        // Indicates initialization success and some other conditions.
        // No link was opened.
        return;
      }

      // A Branch link was opened
      const url = params.$canonical_url;

      listener(url);
    });

    return () => {
      // Clean up the event listeners
      branch.unsubscribe();
    };
  },
  // Options such as prefixes, screens config etc.
  // ...
};

Docs: https://reactnavigation.org/docs/deep-linking/#third-party-integrations https://reactnavigation.org/docs/deep-linking/#third-party-integrations

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

React Navigation v5:如何与 Branch.io 一起使用 的相关文章

随机推荐

  • Android 数据库陌生列表列

    我在读取 Android SQLite 数据库中的列的两种方法之间得到不一致的结果 首先 这是根据此处接受的答案的数据库升级例程的一部分 将 SQLite 数据库从一个版本升级到另一版本 https stackoverflow com qu
  • CMake add_subdirectory()

    介绍 我正在尝试使用 CMake 来获取跨平台编译脚本 适用于 Windows32 上的 VS 9 0 和 Unix 上的 Makefiles 我遇到了关于 add subdirectory 的一些我无法理解的事情 让我向你展示我的代码 C
  • React Native - 剪贴板中更改的监听器

    有没有办法在 React Native 中添加剪贴板数据更改的侦听器 基本上取决于用户是否在剪贴板中复制了某些内容 无论是在应用程序内部还是在后台应用程序 我想执行一些方法 React Native 没有为您提供监听此类事件的方法 但您有两
  • View 无法锚定到父 CoordinatorLayout

    我刚刚将 appcompat 库从 23 1 1 更新到 23 2 现在应用程序停止处理 java lang IllegalStateException 视图无法锚定到父 CoordinatorLayout java lang Illega
  • 在 Swift 中将字典转换为 JSON

    我已经创建了下一个词典 var postJSON ids 0 answersArray 0 ids 1 answersArray 1 ids 2 answersArray 2 as Dictionary 我得到 2 B 1 A 3 C 那么
  • Angular 1 - 获取当前URL参数

    我想从当前 URL 中提取数据并在控制器中使用它 例如我有这个网址 app dev backend surveys 2 我想要提取的位 应用程序 dev 后端 type id Angular 中有什么可以帮助我完成这项任务吗 从 URL 获
  • Highcharts 日期时间本地化

    有人可以告诉我如何本地化在 HighCharts js 文件中硬编码的日期相关字符串吗 例如 我希望图表显示本地化值 F v 而不是 x 轴中默认的 二月 日期标签 我尝试在实例化图表之前通过在语言对象上设置选项来实现本地化 Highcha
  • 数据透视表 SQL 中的水平总计

    我有这个查询工作 select cap idPlanoContasFin 3684 2234 2 from select cap idPlanoContasFin cap idempresa sum cap valorfatura as S
  • 为什么验证不是 Monad?

    一个示例用例 def div2 i Int Validation String Int if i 2 0 Validation success i 2 else Validation failure odd def div4 i Int f
  • Autowired 在自定义约束验证器中给出 Null 值

    我对 Spring 完全陌生 我已经针对所提出的问题查看了一些答案 以下是链接 Spring 3 1 自动装配在自定义约束验证器中不起作用 https stackoverflow com questions 12676299 spring
  • 如何在 Laravel 5.6 中创建自定义 404 页面?

    我还没有找到任何教程来解决如何在这个特定版本的 Laravel 5 6 中 正确 创建 404 页面 我发现一些过时的内容与 Laravel 5 6 的工作方式有点不同 任何输入都会有帮助 我通过阅读 Laravel 文档 自定义 HTTP
  • TypeORM 不支持实体装饰器上的数据库设置

    我试图将我的 TypeORM 项目分离到多个数据库上 因为它的规模不断增长 并且它的组件非常离散 但相互关联 所以我需要能够跨数据库建立关系 我正在尝试使用database设置在 Entity装饰器 如下所述 https typeorm i
  • 在 Elixir 中部署时更改后端/模块?

    如何实现一个可替换的后端 或基本上任何部分或模块 以便可以在 Elixir 中的配置 部署时进行替换 我的具体情况是一个简单的网络应用程序 在本例中使用 Phoenix 但我猜这个问题也适用于其他情况 我有一个非常简单的后端 使用Agent
  • 从 iPhone 上的我的应用程序调用官方 *设置* 应用程序

    在我的应用程序中的某一时刻 我想将用户重定向到官方Settings应用程序 如果可以的话我也想直接去Network内的部分Settings app 我想我需要的是Settings应用程序的 url 方案和构建我的请求的格式 但我怀疑调用这样
  • WebActivatorEx 与 OwinStartup

    例如 在 Web API 应用程序中 有什么区别 assembly OwinStartup typeof MyClass MyMethod and assembly WebActivatorEx PreApplicationStartMet
  • 当下载发生在新选项卡中时,如何在 Selenium (Java) 中无头下载文件?

    我有一个网页 当我单击按钮时 它会打开另一个选项卡 然后在其中几秒钟后下载 csv 文件 我试图无头自动化 但我无法做到这一点 我正在使用下面的代码 但我认为以下解决方案适用于在同一窗口中进行下载 我如何调整它以适合我的情况 代码工作正常
  • 如何使用 bluez API 扫描低功耗蓝牙设备

    我是使用 BlueZ 进行低功耗蓝牙编程的新手 我想开发一个本机代码 c 来使用 BlueZ API 在 Android 4 0 3 下扫描附近的低功耗蓝牙设备 有人知道我应该使用哪些 BlueZ 方法吗 如果您想编写本机 C 代码来扫描
  • Drupal 7:如何更改图像字段小部件“alt”或标题“标签

    我正在尝试更改节点添加表单上的图像小部件中的 alt 和 标题 标签 我已经尝试过这两个钩子 hook field widget form alter hook form alter 我无法找到需要去哪里才能成功更改标签 有人可以指导我找到
  • Spring 的 LoadTimeWeaver 代理未启动

    我正在尝试使用 Spring 和 AspectJ 实现加载时编织 据我所知 我已正确配置所有内容 但当我尝试运行集成测试时 我不断收到错误 org springframework beans factory BeanCreationExce
  • React Navigation v5:如何与 Branch.io 一起使用

    我们有一个利用 Branch io 通用链接的应用程序 按照以下文档 https help branch io developers hub docs react native read deep link https help branc