在App的业务场景中,H5唤醒App是一个几乎必备的功能。比如你想要实现以下需求:当App内容通过各种途径(短信、二维码、微信等)触达用户,从浏览器或者第三方内部可以直接打开H5网页,由网页端交互操作引导回App中(即唤醒App),并还原对应页面。
其中实现难度最大的步骤就是通过H5网页唤醒App,并且打开指定页面。
主要问题就在于第三方应用和浏览器的限制,正常来说,网页唤醒App的载体是网页,唤醒的是App,理论上我们只需要对接好App的协议即可,也就是Android、iOS的生态协议。
但实际上,由于网页端的独立性,大部分浏览器和超级App都制定了一套规则,流量一旦进入各自的平台中就会被限制,比如虽然微信里可以自由打开网页,但大部分网页协议却被禁止,浏览器里的原生方案在微信中都是需要重新开发的,包括标签开发、权限申请、信息注册等。
H5唤醒App的几种原生方案
原生意味着浏览器本身能支持的系统级方案,一般占有率比较高的浏览器基本都是支持使用的。
URL Scheme
URL Scheme是一种页面跳转协议,是一种可以用来定位App的独特标识,唤醒App时可以根据他来唤醒对应App。
例如“weixin://”是微信App的协议名,当我们在浏览器访问这个地址时就可以唤醒微信App,并且携带所需参数,这个参数就可以用于跳转指定页面。
这是一个URL Scheme的完整结构,虽然跳转很方便,但由于移动端的各种限制,缺点也很多:
当要被唤起的App没有安装时,打开这个链接就会出错。在国内非常杂乱的手机浏览器中,出错的现象会很多;
目前没有办法区分多个App都注册了相同scheme的情况;
不支持从其他App中的WebView直接跳转到目标App;
Android端微信App无法直接通过scheme唤起App,可以通过引导或微信开放标签来解决;
只能通过hidden、blur等事件监听到是否安装了App。
Universal Link
Universal Link是苹果官方发布的深度链接功能,可以通过传统的http链接即可打开App。
Universal Link是非常不错的解决方案,在使用的时候只需要iOS客户端生成一个json文件,里面写入配置项,然后服务端把它放到我们的域名下面,之后访问网站的时候就可以自动唤醒App了,不需要做任何额外操作,体验极佳。如果用户没有安装的话,还会跳转到App Store应用详情页。
缺点如下:
至少需要 iOS 9 以上的系统才可支持使用。
在iOS端微信中,在微信7.0.5之前的版本,就无法通过Universal Link唤醒App,需要引导到外部浏览器打开。
微信唤醒App的方案
微信作为国民级社交平台,自然是App推广的重要阵地,但微信内部通常无法直接跳转到其他App,因此除了以上方案外,还可以通过以下方法实现唤醒App需求。
应用宝
如果你的App需要能直接打开应用商店,可以把你的App上传到应用宝平台,实现直接从微信跳转到应用宝和AppStore唤醒App。
微信开放标签
微信目前已经推出了微信开放标签功能,用于在微信浏览器内直接唤醒App,也能通过携带参数直接进入App相应的页面,只要按照文档规定接入微信SDK就可直接使用该功能。
但需要符合以下条件使用:
微信版本要求为:7.0.12 及以上;
系统版本要求为:iOS 10.3 及以上、Android 5.0 及以上
要做一个兼容性很成熟的H5唤醒App方案是比较困难的,原因在于要为移动端的各种不同情况适配不同的方案,比如用户是在PC、手机浏览器还是微信中打开,Universal Link是否关闭,Android众多手机机型、众多手机浏览器导致的兼容问题,加上操作系统和各个平台版本迭代造成的变化等等,这就使得人力和维护成本非常高,且容易出错。
接入专业的第三方openinstall一键拉起功能,可以大大缩短开发时间,降低维护成本,保障功能的稳定性。
openinstall一键拉起功能集成了scheme、Universal Link等技术,兼容多家主流浏览器和社交平台,能一次性满足Android/iOS在多场景H5唤醒App的需求:
在用户已安装App的情况下,能从多个场景(短信、社交平台、二维码等)H5中一键拉起App并传递自定义参数,一键直达内部指定页面。同时避免了用户在已安装App情况下引导去下载App的情况,让操作流程更加合理。
在用户未安装App的情况下,配合使用openinstall携带参数安装功能,在H5场景中下载App后首次打开,能通过页面参数直接跳转指定页面。
并且提供成熟完备的解决方案:
openinstall将分配唯一的scheme;
通过openinstall快速配置Universal Link,无需开发者做过多处理;
支持应用宝Applink能力,需要在Android下载配置里集成应用宝并填写地址;
iOS确保9.2版本以上通过Universal Link唤醒,9.2版本以下通过scheme唤醒;
支持iOS在微信7.0.5以上版本正常唤醒App,需要在iOS下载设置里面,需要选择AppStore及其他下载选项
以上就是对H5唤醒App的一些方案,现阶段移动端环境,比如社交平台、各个应用商店、两大操作系统仍在不断变化,想要实现H5唤醒App,可以参考以上方案。