.open_app_title{字体大小:(20/@rem);}.open_btn{margin-top:(20/@rem);填充:(10/@rem)0;边界半径:(8/@rem);背景:鲑鱼;颜色:#fff;font-size:(16/@rem);}前言写过hybrid的同学肯定遇到过这样的需求。如果用户安装了自己的APP,就会打开APP或者跳转到APP中的某个页面。如果他们没有安装它,他们将指导用户。到相应页面或应用商店下载。这就涉及到H5和Native的交互。为什么H5可以唤醒APP并跳转到相应页面?即使你没有写过,你也一定经历过。最常见的是抖音里的一些广告。如果你点了这个广告,他就会判断你的手机有对应的APP,他就会打开那个APP。如果没有安装,他会帮你跳转到应用商店下载。这对用户更友好一些。有些会在后台直接下载给你,你根本感觉不到。哈哈,你觉得这个技术很牛逼吗?今天我们就来看看它是如何实现的~如果这篇文章对你有帮助,??关注+点赞??给作者打气,文章公众号为首发,关注前端南九获取最新文章在第一次~在call-end体验实现之前,先简单体验一下什么是call-end。从上图我们可以看到,在浏览器中,我们点击打开知乎??,系统会提示我们是否在知乎中打开,当我们点击打开时,知乎就会打开,这是一个简单的调用经验。有了这个技术,我们就可以实现H5唤起APP应用。现阶段的大部分引流方式都得益于这种技术,比如广告、吸引用户、引流等。体验完call-end技术,我们来说说它的实现技术。呼叫端技术也称为深度链接技术。当然,不同平台的实现方式有些不同。一般常见的有几种,分别是:URLScheme(universal)UniversalLink(iOS)AppLink,ChromeIntents(android)URLScheme(universal)这种方法是一种比较常用的技术,各个平台的兼容性也很好。一般由协议名、路径、参数组成。这个一般是Native开发的学生提供的。我们前端同学拿到这个方案后,可以用来打开APP或者APP中的某个页面。URLScheme组成[scheme:][//authority][path][?query][#fragment]常用APPURLSchemeAPP微信支付宝淘宝QQ知乎URLSchemeweixin://alipay://taobao://mqq:/以下方法常用打开/zhihu://直接通过window.location.href跳转window.location.href='zhihu://'通过iframe跳转constiframe=document.createElement('iframe')iframe.style.display='none'iframe.src='zhihu://'document.body.appendChild(iframe)直接用一个标签跳转js桥打开window.miduBridge.call('openAppByRouter',{url:'zhihu://'})判断是否唤醒成功。当用户唤醒APP失败时,我们希望引导用户下载。那么如何才能知道当前APP是否被成功唤醒呢?我们可以监听当前页面的visibilitychange事件。如果页面隐藏,则表示调用成功,否则调用失败,跳转到应用商店。OK,我们来尝试实现一下:首先,我的手机没有安装腾讯微博,所以唤醒不了,让他跳转到应用商店对应的应用下载页面,这里我们使用淘宝下载页面~前端南九呼叫终端测试Demo