Reactjs React中的深度链接,而不使用React本机或React导航

Reactjs React中的深度链接,而不使用React本机或React导航,reactjs,react-native,react-navigation,deep-linking,Reactjs,React Native,React Navigation,Deep Linking,我收到一个客户的请求,要求在我们的React应用程序中实现深度链接,点击链接会将他们直接带到已安装的应用程序中,可能会到达某个点,但目前还不确定 据我所知,react native和react navigation都将此作为它们提供的链接中的功能集的一部分来处理。然而,仅仅为了深度链接而导入一个框架似乎太过分了,也许不是这样 在谷歌搜索之后,我只能在react native或react navigation上找到深度链接的引用 我最好的做法是什么?深度链接主要由苹果和谷歌服务器端处理 React

我收到一个客户的请求,要求在我们的React应用程序中实现深度链接,点击链接会将他们直接带到已安装的应用程序中,可能会到达某个点,但目前还不确定

据我所知,react native和react navigation都将此作为它们提供的链接中的功能集的一部分来处理。然而,仅仅为了深度链接而导入一个框架似乎太过分了,也许不是这样

在谷歌搜索之后,我只能在react native或react navigation上找到深度链接的引用


我最好的做法是什么?

深度链接主要由苹果和谷歌服务器端处理


React native为移动应用程序中的深度链接提供了扩展功能,但普通web应用程序不需要在那里实现。使用通用链接或谷歌特定链接作为web应用程序中的标准链接,以启用深度链接

深度链接主要由苹果和谷歌服务器端处理


React native为移动应用程序中的深度链接提供了扩展功能,但普通web应用程序不需要在那里实现。使用通用链接或谷歌特定链接作为web应用程序中的标准链接来启用深度链接

让我们先了解一些基本知识,然后再了解清楚

在现代水疗中心,比如说React,水疗中心自己处理导航是很常见的。您需要使用浏览器的历史API。这是因为你的SPA只是一个index.html和一堆js代码,所以它有点虚拟,每个页面都是由你的应用程序构建的。比如说,为了避免重新发明轮子,使用一些库就更容易了

但一切都按预期进行,你已经部署了你的应用程序。当用户想要获得某个深度页面时,比如说,浏览器会向服务器发送一个请求,询问:请,服务器,给我一个页面1.html,在文件夹页面中,在文件夹深度中。但服务器并没有那个文件,因为它实际上只有一个index.html,因为它是一个SPA应用程序。然后,我们需要告诉服务器将所有深度路由重新写入索引html,下面是我在Netlify上托管的应用程序的一个示例:

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
当用户请求该页面时,服务器将“重定向”该请求到index.html,我的react路由器dom将根据该路径确定要呈现的“PageComponent”

所以,您可以自己在应用程序中实现路由,可能使用浏览器的历史API,但我想使用该库可能更容易。但这是你的决定


另一方面,如果您的应用程序不是SPA,情况可能会有所不同,因为在NextJS中,路由是在框架本身中实现的,如果使用深度链接,则需要根据应用程序的部署方式进行不同的设置。

让我们先来了解一些基本知识,然后就会清楚了

在现代水疗中心,比如说React,水疗中心自己处理导航是很常见的。您需要使用浏览器的历史API。这是因为你的SPA只是一个index.html和一堆js代码,所以它有点虚拟,每个页面都是由你的应用程序构建的。比如说,为了避免重新发明轮子,使用一些库就更容易了

但一切都按预期进行,你已经部署了你的应用程序。当用户想要获得某个深度页面时,比如说,浏览器会向服务器发送一个请求,询问:请,服务器,给我一个页面1.html,在文件夹页面中,在文件夹深度中。但服务器并没有那个文件,因为它实际上只有一个index.html,因为它是一个SPA应用程序。然后,我们需要告诉服务器将所有深度路由重新写入索引html,下面是我在Netlify上托管的应用程序的一个示例:

[[redirects]]
  from = "/*"
  to = "/index.html"
  status = 200
当用户请求该页面时,服务器将“重定向”该请求到index.html,我的react路由器dom将根据该路径确定要呈现的“PageComponent”

所以,您可以自己在应用程序中实现路由,可能使用浏览器的历史API,但我想使用该库可能更容易。但这是你的决定


另一方面,如果你的应用程序不是SPA,情况可能会有所不同,因为在NextJS中,路由是在框架本身中实现的,如果使用深度链接,则需要根据应用程序的部署方式进行不同的设置。

您的应用程序是带有React的Web应用程序,还是React Native上的移动应用程序?我相信您的客户端应用程序必须允许对其自己的应用程序进行深度链接,因此只要它们提供了深度链接,您就只需要实现Web链接。如果您只负责web应用程序,那么如果移动应用程序本身没有实现深度开发,您将无能为力linking@fxdxpz这是一个带有React-Yunhai的web应用程序,我假设他们已经这样做了,那么它只是一个常规链接。您不需要在web应用程序中执行任何操作。例如,如果本机应用程序配置为处理来自https://example.com,则任何此类链接都将提示在应用程序中打开,而无需您执行任何特殊操作。你
也可以有像s这样的链接omescheme://some/stuffin 锚定标签,应用程序将处理它。所以这更多的是关于配置本机应用程序,而不是您的React应用程序。@I2obiN您不能假设这一点。你必须在一个简单的层次上明确地告诉他们这个特性背后的逻辑,让他们知道实际工作不是来自你的部分。大多数客户端甚至您的经理都不知道如何编程。您的应用程序是带有React的Web应用程序,还是React Native上的移动应用程序?我相信您的客户端应用程序必须允许对其自己的应用程序进行深度链接,因此只要它们提供了链接,您就只需要实现Web链接。如果您只负责web应用程序,那么如果移动应用程序本身没有实现深度开发,您将无能为力linking@fxdxpz这是一个带有React-Yunhai的web应用程序,我假设他们已经这样做了,那么它只是一个常规链接。您不需要在web应用程序中执行任何操作。例如,如果本机应用程序配置为处理来自https://example.com,则任何此类链接都将提示在应用程序中打开,而无需您执行任何特殊操作。你也可以有像s这样的链接omescheme://some/stuffin 锚定标签,应用程序将处理它。所以这更多的是关于配置本机应用程序,而不是您的React应用程序。@I2obiN您不能假设这一点。你必须在一个简单的层次上明确地告诉他们这个特性背后的逻辑,让他们知道实际工作不是来自你的部分。大多数客户甚至你的经理都不知道如何编程。回答得好,谢谢你的洞察力,尤其是关于Netlife上的服务器应用的洞察力。租赁是我的:当然,节日快乐!回答得好,感谢您对Netlife服务器应用程序的深入了解。租赁是我的:当然,节日快乐!