如果未安装应用程序,则重定向到应用程序商店

时间:2019-01-24 12:29:18

标签: ios deep-linking

方案是用户将获得指向其电子邮件的链接。如果用户单击链接,则如果已安装应用程序,则应打开应用程序;如果未安装应用程序,则应重定向到应用程序商店。

我已经看到了深层链接的实现,但是我相信它在后端也需要更多的实现。有人可以帮忙吗?

Redirect to application if installed, otherwise to App Store

已经过去了。有什么更好的方法吗?

2 个答案:

答案 0 :(得分:2)

我假设您要通过电子邮件传递的链接是https链接。在这种情况下,要使iOS能够将其重定向到您的应用,您将需要实现universal links。此实现要求您在entitlements文件中注册要响应的域,并在后端添加一个apple-app-site-association文件,这样Apple可以验证您尝试响应的域是否确实你的。

以此,在安装您的应用后,它可以响应您自己域的链接。

现在,如果没有已安装的应用程序能够响应特定的https域,则系统将在浏览器中将其打开。因此,无法强迫AppStore打开域的链接。因此,您可以做的是,当您的网页在Safari上打开时,检查运行的设备是否为iOS,并要求系统在AppStore应用程序上打开您的应用程序页面。但是,您仍然必须通过Safari。

无论如何,要请求iOS在您的网页上打开AppStore,您可以使用itms-apps,如下所示:

const iOS = !!navigator.platform && /iPad|iPhone|iPod/.test(navigator.platform);

if (iOS) {
  // Just use the link of your app on the AppStore and replace https:// with itms://
  window.location.href = "itms://itunes.apple.com/us/app/google-maps-transit-food/id585027354?mt=8";
}

// Here I'm redirecting to Google Maps on AppStore app.

注意:这只是一个非常简单的示例,仅用于演示概念,它甚至不检查浏览器是否真的是Safari。为此,您可以使用mobile-detect.js

之类的库

答案 1 :(得分:0)

我的建议是检查iOS版本 这里的例子

let url = URL(string: "www.stackoverflow.com")!

if #available(iOS 10.0, *) {
     UIApplication.shared.open(url, options: [:], completionHandler: nil)
} else {
     UIApplication.shared.openURL(url)
}