0

比如说,如果我没有安装应用程序,我想在我的 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
4

1 回答 1

2

老实说,这对于您自己实施是一种痛苦。如果没有大量令人讨厌的边缘情况,就没有简单的方法来处理所有事情,最值得注意的是“无法打开页面”错误用户会看到他们是否没有安装您的应用程序。在 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 故意在 iOS 9.2 更新中打破了这一点,因此自定义 URL 方案现在实际上对于深度链接几乎没有用,除非您确定该应用程序已经安装在该设备上。Apple 显然正在尽可能地推动 Universal Links 的采用。

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

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

于 2016-05-23T18:34:35.797 回答