繁体   English   中英

如果未安装应用,则打开网络

[英]Open web if app is not installed

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

老实说,这是您自己实施的一种痛苦。 没有大量烦人的边缘案例,没有任何简单的方法可以处理所有问题,最明显的是,如果用户未安装应用,则会出现“无法打开页面”错误。在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方案实际上对于现在的深层链接几乎毫无用处,除非您确定该应用程序已安装在该设备上。 苹果显然正在努力推动通用链接的普及。

最好的解决方案是将自定义URL方案链接(具有智能的JavaScript重定向)和Apple的新通用链接相结合 通用链接可让您使用正常的http:// URL链接到网站上的页面(该页面可以简单地重定向到所需的后备网页,而不会导致“无法打开页面”错误的自定义URL触发器)并通过手机直接发送到您的应用(如果已安装)中。 不幸的是(正如您所指出的),Universal Links仅在iOS 9+中运行,并且在许多应用程序中打开时仍无法运行,因此需要大量边缘案例处理才能为每个用户带来良好的体验。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM