Я пытался реализовать Deep Linking , следуя официальной документации в качестве ссылки.
Я завершил настройку IOS на XCode.
Но когда я вставляю URL mychat://chat
, он открывает мой экран A screen
, а не Second
.Я протестировал initialRouteName: 'Second'
, он работает.
Так что я не могу понять, какой шаг мне не хватает.
Вот мой Router.js:
import { createMaterialTopTabNavigator, createStackNavigator,
createDrawerNavigator, createTabNavigator,
createBottomTabNavigator, createAppContainer
} from 'react-navigation';
import React, { Component } from 'react';
import { Platform } from 'react-native';
import A from './components/A';
import B from './components/B';
import Second from './components/Second';
import DrawerPanel from './components/DrawerPanel';
const Stack = createStackNavigator({
A: {
screen: createBottomTabNavigator({
'A Screen': A,
'B Screen': B
},
{
swipeEnabled: false,
lazyLoad: false,
tabBarOptions: {
activeTintColor: 'tomato',
inactiveTintColor: 'gray',
tabStyle: {
width: 125,
height: 50
},
scrollEnabled: true
}
})
},
Second: {
screen: Second,
// path: 'chat/:user'
path: 'chat'
}
},
{
initialRouteName: 'A',
headerMode: 'screen'
}
);
// combine DrawerPanel
const Router = createDrawerNavigator({
FirstScreen: {
screen: Stack
}
},
{
contentComponent: DrawerPanel,
drawerWidth: 200
});
// about Deep linking
const prefix = Platform.OS == 'android' ? 'mychat://mychat/' : 'mychat://';
const SimpleApp = createAppContainer(Router);
const MainApp = () => <SimpleApp uriPrefix={prefix} />;
export default MainApp;
Мои реакции Родные зависимости:
"dependencies": {
"react": "16.3.1",
"react-native": "0.55.4",
"react-native-gesture-handler": "^1.0.9",
"react-navigation": "^3.0.0"
},
Любая помощь будет оценена.Заранее спасибо.