当前位置: 首页 > 科技观察

一篇文章了解H5打开APP的众多解决方法_0

时间:2023-03-12 19:16:23 科技观察

其实打开H5APP应该是一件很简单的事情。无非就是在H5页面调用一个协议或者接口来打开APP。但由于技术方案的发展,以及对某些流量APP的屏蔽,唤醒APP的解决方案变得复杂起来。本文从介绍唤起APP的众多方案入手,分别介绍各个方案的优缺点。希望读者能从全局的角度对H5唤起APP有一个系统的认识。1、唤醒APP的解决方法如下图所示。目前打开APP的渠道主要有3种:流量APP打包渠道、原生开通渠道、一些技巧。1.1微信、手Q、微博等流量APP封装渠道,为保证流量不流失,对iOS和Android原有的激活方案进行了屏蔽和封装。这些APP中,使用原生APP唤醒方案是无效的,只能使用自己的方案或白名单中的APP通过H5唤醒APP。1.1.1微信微信最初的APP解决方案是WXJSBridge,后来变成了WXJS-SDK。这时候可能有人要说了,你胡说八道,我根本就没有看到JS-SDK上调用APP的相应接口。其实APP的这些接口都有,只是文档里没有写。使用微信的应用调用方案需要两点:清楚调用应用的接口。被唤醒的应用在微信的白名单中,所以对于第三方应用,即使知道接口名称也无法使用。JS-SDK和JSBridge的本质实现是一样的,但是JS-SDK还要求用户在自己的后台全局缓存一个jsapi_ticket。如果腾讯只是想做调用APP的逻辑,直接使用JSBridge无疑是有问题的。快速和良好的实践。1.1.2手Q手Q和微信一样,也封装了唤起APP,同样受白名单限制,只能使用腾讯系APP。但是在微信中,是不允许使用schema来唤起腾讯APP的,但是在手Q上打开腾讯APP,可以选择使用schema来代替手Q打包方案MPP。参数的方法有问题,文档也不完善。确实不如直接使用schema好用。1.1.3其他流量APP主要是指微博、手机百度等APP,应该也是开启白名单的方式。它们并不常用,所以我不会在这里详细介绍。2.Nativechannel2.1SchemaSchema是一个页内重定向协议,主要由以下几个部分组成[1]Behavior(应用程序的一个功能)|scheme://[path][?query]||需要应用程序识别功能但是,在Chrome25和iOS9之后,Android和iOS都不再原生支持这个协议,转而成为新的解决方案AppLink和UniversalLink。相比这个方案,Schema无法判断APP是否打开成功,所以无法对APP未打开做一些处理(只能通过hack的方式实现,通过判断页面是否可见)。不过现在Schema在除原生之外的所有主流手机浏览器(如QQ浏览器、Chrome浏览器等)都有很好的支持,使用schema不需要在客户端额外处理,做一些简单的事情还是可以的逻辑使用。2.2UniversalLinkUniversalLink是iOS开发的一种APP与Web无缝链接的方式。访问链接时,如果安装了APP,则直接跳转到APP对应的页面,如果没有安装APP,则跳转到对应的H5页面。但是我们可以利用这个特性来唤起APP。UniversalLink有几个缺陷:调用的app必须支持当前页面,调用的域名必须是跨域的。必须是Https2.3APP链接。无缝的用户体验——如果安装了应用程序,将重定向应用程序,如果未安装应用程序,将重定向相应的页面。因此,我们也可以将其作为一个叫醒应用。同样,也需要APP进行相应的设置。但是,APPLink是Android上提供的解决方案。它与UniversalLink的区别在于不需要使用https协议。帮助其他APP在微信上引流,换取其他推广资源。不过这个方案已经被微信屏蔽了。所以目前作为第三方APP,微信是没有办法调用的。4.总结本文对市面上常见的H5激活APP方案进行了概括性的总结,并列出了各自的优缺点。受限于腾讯系统本身的白名单,没办法给出最佳实践,但也希望能为大家用H5唤醒APP提供一些帮助。