方案是用户将获得指向其电子邮件的链接。如果用户单击链接,则如果已安装应用程序,则应打开应用程序;如果未安装应用程序,则应重定向到应用程序商店。
我已经看到了深层链接的实现,但是我相信它在后端也需要更多的实现。有人可以帮忙吗?
Redirect to application if installed, otherwise to App Store
已经过去了。有什么更好的方法吗?
答案 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)
}