打开在react-native的Routes中未指定的DeepLink

时间:2019-07-12 05:08:36

标签: javascript react-native react-navigation

如果我考虑一个例子

https://app.abc.com/login 

这将在我的应用程序中打开登录页面。但是如果链接就像

https://app.abc.com/loginUser //This link is a route in web app

由于未在路径中定义路径,因此无法在App中打开登录页面

现在的要求是,每当用户单击“第二”链接时,即使这样,它也应该在App中而不是在Web中打开登录组件。即。同一组件有多个路由,还是可以为此类路由打开通用组件?我们可以在React-Native中实现吗?

1 个答案:

答案 0 :(得分:3)

这非常简单,只需浏览React-Navigation的文档

import { NavigationActions } from 'react-navigation' 
    const previousGetActionForPathAndParams = MyAPP.router.getActionForPathAndParams;

    Object.assign(MyApp.router, {
      getActionForPathAndParams(path) {
        console.log("path in navigation", path)
        if (
          path === 'loginUser'
        ) {
          // returns a profile navigate action for /my/custom/path
          return NavigationActions.navigate({
            routeName: 'Login',
          });
        }
        // else {
        //   console.log("you have landed in an unknown space")
        // }
        return previousGetActionForPathAndParams(path);
      },
    });

将此代码插入您的导航文件中,您可以选择使用React-Navigation

在以前的版本中,我们可以按照here

通过给特定组件提供多个路径来做到这一点

感谢@DoğancanArabacı的宝贵意见,这曾经是一个方便的解决方案