【发布时间】:2020-12-13 15:55:15
【问题描述】:
简单来说,我有三个容器,App.js、Homepage.js、Detail.js
App.js
let Home = createStackNavigator({
HomePage: { screen: HomePage },
Detail: { screen: DetailPage, path: 'detail' },
});
const RootPage = createAppContainer(createBottomTabNavigator({
Home: {
screen: Home
},
xxx: {...}
}));
export default class App extends React.Component {
render() {
return (
<Root>
<RootPage />
</Root>
);
}
主页.js
import * as Linking from 'expo-linking';
export default class HomePage extends React.Component {
...
componentDidMount() {
Linking.getInitialURL().then(this.urlRedirect);
Linking.addEventListener('url', event => {
this.urlRedirect(event.url);
});
}
urlRedirect(url) {
if(!url) return;
let { path, queryParams } = Linking.parse(url);
console.log(`Linked to app with path: ${path} and data: ${JSON.stringify(queryParams)}`);
if (path != null)
this.props.navigation.navigate("Detail", {
item: {type: queryParams.type, data: {id: queryParams.id}}
})
}
...
}
如果应用在后台,链接{perfix}/--/detail?type=A&id=1 可以重定向到详细信息页面。但是,问题是如果应用程序没有在后台运行,上面的链接只能重定向到主页。请给点建议,谢谢。
【问题讨论】:
标签: javascript react-native expo react-navigation deep-linking