带有反应导航的深层链接不起作用

Ger*_*ate 6 javascript deep-linking reactjs react-native react-navigation

实际上,我正在使用react-navigation 3.1.5在react-native 0.58上开发一个应用程序,但我无法使我的应用程序正常运行。

这是我的代码:

应用程序导航.js

const MainStack = createBottomTabNavigator({
  Home: { screen: Home },
  Pets: { screen: Pets, path: 'spidersecurity://terque/pets' },
  Notifications: { screen: UserNotifications },
  UpdateUser: { screen: UpdateUser },
});

const AppStack = createStackNavigator({
  MainStack: { screen: MainStack, path: '' },
  PetStack: { screen: PetStack }
});

const Main = createSwithNavigator({
  App: { screen: AppStack, path: '' }
});
Run Code Online (Sandbox Code Playgroud)

基本上这是我的导航结构。我已将其设置AndroidManifest.xml为以下内容:

<intent-filter android:label="filter_react_native">
    <action android:name="android.intent.action.VIEW" />
    <category android:name="android.intent.category.DEFAULT" />
    <category android:name="android.intent.category.BROWSABLE" />
    <data android:scheme="spidersecurity" android:host="terque" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)

而且,当我打开带有地址的链接时,spidersecurity://terque/pets此链接会打开应用程序,但它不会导航到指定的屏幕。我不知道我是否做错了什么,但我读了很多页面和博客但没有成功。

注意:我已验证“spidersecurity://terque/pets”是否是路由匹配,因为console.log在获取链接时我在代码中添加了 a

Tra*_*uan 0

我刚刚创建了一个示例并确认它仍然有效;

也许您已经测试过了Chrome on android,Chrome 无法打开该应用程序;在这种情况下,您可以在这里阅读更多相关信息:https ://developer.chrome.com/multidevice/android/intents

Chrome 已将其行为更改为deeplink

你可以看我的简单demo;在本例中,我只是做了一个非常简单的path https://github.com/tranquan/rn-deeplink-demo