深层链接 - 如果应用程序关闭则不起作用

sag*_*agi 15 navigation deep-linking react-native expo

我正在我的 React Native 应用程序中实现与 expo 的深度链接。我已经成功地使用此代码和本教程以及本文档来将其调整为我的嵌套堆栈:

const linking = {
  prefixes:[prefix],
  config: {
    screens: {
      Drawer: {
        screens: {
          Tabs: {
            screens: {
              Profile:"profile"
            }
          }
        }
      },
    }
  }
}
return (
  <NavigationContainer linking={linking}>
    <RootStackScreen actions={actions} showLoader={showLoader} user={user} {...props} />
  </NavigationContainer>
)
Run Code Online (Sandbox Code Playgroud)

}

如果我使用myscheme://profile它,它会按预期工作,但前提是该应用程序在后台打开。当应用程序关闭时,它只是在我的初始主屏幕中打开它,我尝试谷歌搜索和搜索,但找不到任何适合我所做的解释。我还尝试添加getInitialRoute该功能linking,该功能在应用程序关闭并从深层链接打开时触发,但无法弄清楚如何使用它来激活导航。

async getInitialURL() {
  const url = await Linking.getInitialURL(); // This returns the link that was used to open the app
  if (url != null) {
    //const { path, queryParams } = Linking.parse(url);
    //console.log(path,queryParams)
    //Linking.openURL(url) 
    return url;
  }
  
},
Run Code Online (Sandbox Code Playgroud)

Ham*_*mza 0

您可以检查几件事。

  • 验证 的结构是否linking.config与您的导航结构相匹配。我过去遇到过类似的问题,并通过确保我的config结构正确来解决它。

  • 确保linking对象设置正确。请参阅文档进行验证。从它的外观来看,linking您所展示的对象中没有该getInitialURL属性。

  • 确认您已按照文档设置了本机部分。

希望事情能有所进展!如果没有,请告诉我。