admin管理员组文章数量:1585965
移动互联网时代,“用户增长”成为每个公司关注的重点话题。为了将更多用户引导到客户端内,产品经理会习惯性地在网页的各个地方巧妙隐藏唤醒App的“机关”。
常见的出现场景
浏览器 —唤醒—> App
用户在浏览器中浏览网页时,当检测到该网页来自于某个App时,此时可以引导用户呼起或者下载App
微信、QQ —唤醒—> App
用户将App中自己喜欢的内容分享到微信、QQ,在站外打开网页时,可以正常浏览,也可以引导用户呼起或者下载App
接下来,让我们深入研究下唤醒App的几种解决方案?
唤醒App的几种解决方案
1、 URL Scheme 方式
- 条件
- APP需要注册自己的URL Scheme,用来唯一标识一个App。
- Scheme格式:
<scheme域名>://<path>?<params>=<value>
- 代码
1) iframe方式
var _iframe = document.createElement('iframe');
_iframe.src = scheme;
_iframe.style.display = 'none';
document.body.appendChild(_iframe);
window.setTimeout(function(){
document.body.removeChild(_iframe);
if((+new Date()) - openTime > 2500) {
window.location.href = url;
}
}, 2000);
2)a链接方式<a href="<scheme域名>://<path>?<params>=<value>">打开APP</a>
3)location.href 直接跳转window.location.href = "<scheme域名>://<path>?<params>=<value>"
-
优缺点
- 优点:iOS、Android均支持,开发简单;web-native协议制定简单。
- 缺点:
由于要考虑用户没有安装App的情况,所以当用户没有安装时,通过延迟会跳转到AppStore。iOS9+当跳转App时,会弹出一个弹框,让用户选择是否跳转,此时还在当前页,setTimeout中的代码会继续执行,导致用户还没来得及选择,就已经跳到AppStore。
若用户未安装App,Android上scheme打开失败,没有任何提示,延迟之后,跳下载页。但是iOS9+会先弹出个万恶的跳转失败的弹窗,延迟之后,再跳下载页。iOS9+呼端确认弹窗
image.png
iOS9+万恶的跳转失败的弹窗
image.png
-
支持情况
URL Scheme方式一直被广泛使用,但是有些App并不认可,比如:微信、手机百度;站在这些App的角度上考虑,他们并不希望用户为了看更多分享内容,跳出自己的App,因此他们就在客户端内拦截了scheme方式呼端,导致URL Scheme方式在微信、手机百度中彻底失效!!!当然微信是存在一个白名单的,对于白名单中的分享链接是不会屏蔽scheme调用的。
安卓App厂商差异很大,情况比较多样化(比如:Android Chrome版本25+通过iframe方式呼端失败 ) -
兼容性
Android系统:Chrome for Android无法通过iframe方式来调用scheme,而通过a链接的方式可以成功调用,而针对Chrome内核的浏览器如360浏览器,对于iframe和a链接的方式都能支持,所以对Chrome内核的浏览器采用a链接的方式来调用scheme;对于其他浏览器,如UC,QQ浏览器则采用iframe方式调用scheme。
iOS系统:Safari浏览器不支持 iframe可直接做页面跳转;对于UC、Chrome、QQ只能通过a链接方式调用scheme。
上述提到的屏蔽scheme方式的App:呼端失败跳下载页。
- 适用于安装就跳转,不安装就跳下载的呼端场景
- 参考文档(有关客户端配置scheme)
Android scheme呼起App
iOS 客户端URL Scheme配置以及使用
作者:宇晓
链接:https://www.jianshu/p/136fd75ab05b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文标签: app
版权声明:本文标题:如何唤醒APP? 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dongtai/1727975714a1140630.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论