“俗话说不会写文章的程序媛不是一个好的公众号小编”前端
通常公司都有本身的app,而app是须要不断有新用户涌入才能持续运营,达到不错的收入。就须要使用这种方式进行引入新的用户到native app中。ios
一些内容在网页端体验很差,或者一些功能须要app内才能实现,以及能留住用户,就须要将用户引入app中。 点击网页按钮打开app并自动跳到相应页面。浏览器
首先,这个方法仅适用于移动端h5页面,通常的智能机都是可使用的。这里使用的是es5的代码模式,容易理解。app
用漫画的形式为你们介绍这个小知识但愿你们能够更好理解。dom
网页端经过访问app协议打开,其实利用的是app的url scheme方式。url
若是有安装app,那么协议请求便会被app检测到。app打开期间,app界面会覆盖h5网页。因此访问打开app地址放在下载后面延迟执行,用户就看不到下载的跳转了。es5
若是未安装app,那协议请求就不会有任何效果。便会继续执行,直到跳转页面下载。3d
首先要经过UA判断当前浏览器UA 并转大写。用来分别针对安卓和ios机型作2种不同的处理。orm
根据UA判断的安卓仍是ios机型,分别作处理。cdn
安卓设备:
经过隐藏iframe方式实现。iframe中请求协议启动地址,建立iframe须要时间,延迟一点时间,将iframe加入dom,产生请求。
若是app已安装,浏览器就会弹出一个提示框,问用户是否启动app。
若是未安装,浏览器等待一秒后就会去下载。
之因此使用iframe,为了防止location跳转后,js请求中断,跳入空白页。
代码中的Data.now()-t < 1200,只因此是1200,其实也是一个估计值,为了大部分解决一些已经安装的app,1秒后仍是会跳转下载。由于打开app的瞬间,浏览器界面被app界面覆盖。但js未中止执行,延迟后仍是会在后台打开下载页,只是被遮挡了。
IOS设备:
首先,ios浏览器已经不支持再使用iframe了,因此上面的方式不适合用在ios上。
所以,这里只能采用location的方式。
若是安装了app,ios浏览器打开app协议前就会弹出个框,提示是否打开。
若是没有安装,就不会弹出这个提示。
欢迎你们关注咱们的公众号:Web前端Talk