【问题标题】:How to redirect to the app store from a deep link if the app is not installed?如果未安装应用程序,如何从深层链接重定向到应用程序商店?
【发布时间】:2019-05-04 22:53:59
【问题描述】:
我希望用户能够通过 Facebook 等分享链接(例如 app.com/SKFLA - 这主要是因为他们自己的深层链接不可点击)。点击后,这会重定向到深层链接应用程序://SKFLA。如果安装了应用程序,这将打开应用程序 - 到目前为止一切正常。但是如果没有安装该应用程序,我想在相关页面上打开应用程序商店。这是可以实现的吗?谢谢!
【问题讨论】:
标签:
android
ios
react-native
mobile
deep-linking
【解决方案1】:
如果有人仍然陷入这个问题并且需要最简单的解决方案,你会喜欢 node-deeplink
1.) 如果安装了应用程序:通过深度链接调用应用程序将始终调用根组件的componentDidMount。所以你可以在那里附加一个监听器。喜欢:
Linking.getInitialURL()
.then(url => {
if (url) {
this.handleOpenURL({ url });
}
})
.catch(console.error);
Linking.addEventListener('url', this.handleOpenURL);
handleOpenURL(event) {
if (event) {
console.log('event = ', event);
const url = event.url;
const route = url.replace(/.*?:\/\//g, '');
console.log('route = ', route);
if(route.match(/\/([^\/]+)\/?$/)) {
const id = route.match(/\/([^\/]+)\/?$/)[1];
const routeName = route.split('/')[0];
if (routeName === 'privatealbum') {
Actions.privateAlbum({ albumId: id });
}
}
}
}
2.) 如果未安装应用:只需在您的服务器中设置路由,当您的手机中未安装应用时,node-deeplink 包将处理 Web 浏览器与应用商店之间的桥接。
这样一来,两件案子都会顺利处理