如何在前台刷新原生深度链接应用程序?



当我在 react native 上使用深度链接 android 时,我遇到了问题。当应用程序处于前台状态时,当应用程序从深层链接触发时,应用程序不会在该屏幕上刷新。例如,我想深度链接到主屏幕,但是当我的前景在配置文件屏幕上时,我的应用程序不刷新?

这是我的深度链接代码:

async componentDidMount() {
//  This for deeplinking
if (Platform.OS === 'android') {
Linking.getInitialURL().then(url => {
this.navigate(url);
});
} else {
Linking.addEventListener('url', this.handleOpenURL);
}
navigate = (url) => {
const { navigate } = this.props.navigation;
const route = url.replace(/.*?:///g, '');
const id = route.match(//([^/]+)/?$/)[1];
const routeName = route.split('/')[0];
if (id === 'yes') {
alert(id)
}
}

我们可以使用来自 react 原生 firebase 的属性,如果您为应用使用了通知,它可以在前台、后台或应用中检测应用。如果你不这样做,你可以从反应导航中使用didFocus((。

我遇到了同样的问题,这个 StackOverflow 答案为我解决了它: https://stackoverflow.com/a/59351886/5901486

引用迈克尔

的话 最后我想通了,Linking.addEventListener('url',callback(返回和event,要得到url,它应该是event.url,我之前做的是Linking.addEventListener('url',(url( => setLink(url(

(,它必须是Linking.addEventListener('url',({ url }( => setLink(url((

最新更新