如果未安装应用程序,请打开Web

时间:2016-05-23 10:46:19

标签: ios ios-universal-links

说,如果我没有安装应用程序,我想在iPhone上打开我们的网页。是的,我了解Apple的Universal Links,但这仅适用于iOS设备,而且必须运行iOS 9。

而且可以肯定,这可以做到。我在Ebay上看过它。如果您有链接,它将在应用程序中打开(如果已安装),或者在浏览器中打开,无论设备和版本如何:

http://rover.ebay.com/rover/0/e11011.m43.l1123/7?euid=b4a2e0009e73485c9f8b740ae229dba1&bu=43989098353&loc=http%3A%2F%2Fwww.ebay.com%2Fulk%2Fitm%2F162076993293&sojTags=bu=bu

1 个答案:

答案 0 :(得分:2)

说实话,这对你自己来说是一种痛苦。在没有大量令人讨厌的边缘情况下,没有简单的方法来处理所有事情,最明显的是“无法打开页面”#34;错误用户将看到他们是否安装了您的应用。在iOS 9之前,一个合理的基本实现是将这样的JavaScript重定向放到您网站上的专用重定向页面中:

setTimeout(function() {
  window.location = "https://yourdomain.com";
}, 25);

// If "yourapp://" is registered, the user will see a dialog
// asking if they want to open your app. If they agree, your
// app will launch immediately and the timer won't fire.
// If not installed, you'll get an ugly "Cannot Open Page" 
// dialogue and your fallback page will open when the timer expires.

window.location = "yourapp://";

不幸的是,这仍然会显示“无法打开页面”。错误,但直到最近才有可能通过使用这个脚本的更细微的版本以合理的用户友好方式解决这个问题。遗憾的是,Apple intentionally broke that with the iOS 9.2 update,所以自定义网址方案现在对于深度链接实际上几乎没用,除非您某些该应用已安装在该设备上。 Apple显然试图尽可能地推动Universal Links的采用。

最佳解决方案是自定义网址方案链接(具有智能JavaScript重定向)和Apple的新Universal Links的组合。通用链接允许您使用正常的http:// URL到您网站上的页面(该页面可以简单地重定向到您想要的后备网页,而不会导致自定义URL触发器导致“无法打开页面”错误),如果已安装,则会被您的手机拦截并直接发送到您的应用中。不幸的是(正如你所注意到的)Universal Links仅适用于iOS 9+,并且在许多应用程序中打开时无法正常工作,因此需要进行大量的边缘案例处理才能为每个用户提供可靠的体验。

这需要处理很多,所以最好的选择可能是像Branch.io这样的免费服务(完全披露:我与团队合作)来处理所有技术问题。您可以使用Branch服务找到应用程序的示例(包括来自eBay的几个)here