簡體   English   中英

打開未在路由中以反應原生方式指定的DeepLink

[英]Opening DeepLinks which are not specified in Routes in react-native

如果我考慮一個例子

https://app.abc.com/login 

這會在我的應用中打開登錄頁面。 但如果鏈接是這樣的

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

這不會在App中打開登錄頁面,因為Path未在路徑中定義

現在的要求是,每當用戶點擊第二個鏈接時,即使這樣,它也應該在App中而不是在Web中打開登錄組件。 即。 同一組件的多個路由,或者我可以為這些路由打開通用組件嗎? 我們能在React-Native中實現這一目標嗎?

這很簡單,只需要探索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

在以前的版本中,我們可以通過在此處為特定組件提供多個路徑來實現

感謝@DoğancanArabacı的有價值的評論,曾經是一個方便的解決方案

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM