如果未安装应用程序,如何从深层链接重定向到应用程序商店?

问题描述 投票:0回答:4

我希望用户能够通过 Facebook 等共享链接(例如 app.com/SKFLA - 这主要是因为深层链接本身不可点击)。点击后,会重定向到深层链接应用程序://SKFLA。如果安装了该应用程序,则会打开该应用程序 - 到目前为止一切正常。但如果该应用程序未安装,我想在相关页面上打开应用程序商店。这是可以实现的吗?谢谢!

android ios react-native mobile deep-linking
4个回答
6
投票

1
投票

不确定本机行为。 我们使用了第三方服务,例如 https://branch.io/deepviews/。 有很多类似的服务。


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 包将处理网络浏览器与应用程序商店之间的桥接。

这样,两个案子就可以顺利处理了


0
投票

最简单的方法是定义一个深层链接路径,如果没有它安装它通过

mod_rewrite
重定向它们。

假设您有一个应用程序,您想要加入一个群组,并且您的通用链接类似于

www.yourdomain.com/joingroup?name=whatever
,这会在您的服务器中为从 iPhone 或 iPad 访问该链接(但没有该群组)的用户添加一条规则。安装的应用程序将用户重定向到应用程序商店。

# Enable mod_rewrite module
server.modules += ( "mod_rewrite" )

# Redirect iOS users from /joingroup to App Store URL
$HTTP["useragent"] =~ "iPhone|iPad|iPod" {
    $HTTP["host"] =~ "^(www\.)?mydomain\.com$" {
        url.redirect = ( "^/joingroup(.*)" => "https://apps.apple.com/theidoftheappstore" )
    }
}

© www.soinside.com 2019 - 2024. All rights reserved.