H5唤醒APP

最近接到了一个需求,要求推广落地页或分享页引导已下载用户打开APP,引导未下载用户下载APP。对于这个需求很熟悉也很常见,度娘一下发现有很多的解决方案,但是实际应用中,却发现总是很难做到100%的完美。而且国内的一些浏览器会拦截拦截scheme,完全不知道他们在想些什么- -!,所以只能引导用户去Safari 或者其他浏览器中打开(很是蛋疼)。下面来说一下唤起APP的好几种方法:

iframe

在只有 URL Scheme 的日子里,iframe 是使用最多的了。因为在未安装 app 的情况下,不会去跳转错误页面。但是 iframe 在各个系统以及各个应用中的兼容问题还是挺多的,不能全部使用 URL Scheme。在Android 5+ 的版本下可以使用,ios 9+ 的版本就不要用的,具体的各位同学可以去度娘一下。

<iframe src="URL Scheme://">

a 标签

在这里不得不说一下 Intent 语法:安卓的原生谷歌浏览器自从 chrome25 版本开始对于唤端功能做了一些变化,URL Scheme 无法再启动 Android 应用。 例如,通过 iframe 指向 weixin://,即使用户安装了微信也无法打开。所以,APP需要实现谷歌官方提供的 intent: 语法,或者实现让用户通过自定义手势来打开APP。

<a href="intent://">唤醒APP</a>

具体的 intent 请自行度娘。

window.location.href

URL Scheme 在 ios 9+ 上诸如 safari、UC、QQ浏览器中, iframe 均无法成功唤起 APP,只能通过 window.location 才能成功唤端。当然,如果我们的 app 支持 Universal Link,ios 9+ 就用不到 URL Scheme 了。而 Universal Link 在使用过程中,我发现在 qq 中,无论是 iframe 导航 还是 a 标签打开 又或者 window.location 都无法成功唤端,一开始我以为是 qq 和微信一样禁止了 Universal Link 唤端的功能,其实不然,百般试验下,通过 top.location 唤端成功了。

在这里我个人推荐使用 window.location.href 这种唤醒方法不管是 <a>标签 还是 iframe 都存在这这些那些的兼容问题,但是对于 window.location.href 来说就轻松很多了。

demo 地址 码云

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
iOS系统是目前市场上最为流行的智能手机操作系统之一,而H5技术则是网页设计与开发领域的一大热门技术。在很多情况下,我们需要H5页面能够实现唤醒app的功能,这样不仅可以增加用户体验,还能提高应用的活跃度和转化率。下面我们来看一下如何在iOS平台上实现H5唤醒App的功能: 1.使用 universal link:Universal Links 是苹果提供的一种标准的网络链接技术。在使用这种技术时,需要在项目中配置一个 JSON 文件,并在 app 中运用 Associated Domains 的配置与这个 JSON 文件联系,最后在 H5 页面中添加相应的链接。当用户点击链接时,iOS 系统就会判断该链接是否关联到了 APP 上,如果是,就会自动将用户跳转到 APP 中。 2.使用 scheme:Scheme 系统是 iOS 中常用的一种协议,用于在应用程序之间传递数据,或调用应用程序内部的某些功能。可以在APP项目中设置scheme,当手机浏览器在用户访问页面时,会根据链接协议中的scheme来唤醒APP,并且把数据传递到APP中。使用Scheme的方式相对来说比较简单,但是要注意的是,由于iOS9中的安全机制调整,仅能在应用内发起 scheme 调用。如果APP没有被安装,那么scheme调用是无效的。 3.使用IOS智能浏览器:安装一些智能浏览器,它们可以自动扫描网页上提供的一个二维码,并从中解析出应用商店的链接,并引导用户去下载应用,类似于国内的微信、手Q、支付宝等。 需要注意的是,无论使用哪种方式实现唤醒App的功能,都需要在APP中进行相应的设置和配置,以确保APP能够正常响应用户的调用。因此在进行开发时,需要综合考虑多个方面的因素,才能实现最优质的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值