移动app部分机型无法唤起h5支付宝支付_用这段代码对App说:喂,醒醒!App,到你出场了!...

一般公司都有自己的app,而app是需要不断有新用户涌入才能持续运营,达到不错的收入。就需要使用这种方式进行引入新的用户到native app中。

一些内容在网页端体验不好,或者一些功能需要app内才能实现,以及能留住用户,就需要将用户引入app中。

点击网页按钮打开app并自动跳到相应页面。

首先,这个方法仅适用于移动端h5页面,一般的智能机都是可以使用的。这里使用的是es5的代码模式,容易理解。

这次换一种有趣的方式来整理前端知识,也是第一次尝试,以微信对话的方式来展示前端知识,让技术知识不那么枯燥。希望大家也能留下一些意见或建议。技术需要互动感。

那开启今天的内容吧。

以柯南和小哀为聊天对象开启前端知识分享。

(做这个还是有难度的,所以也别羡慕有2个微信号的人

bf6e9e99be2061a7000e149bf8fd2a7d.gif

,其实用的也不是2个微信号。)

670b0ff0acc209c86592bc4921ebb836.png

我们来看看如何使用移动端浏览器的某个特性:

网页端通过访问app协议打开,其实利用的是app的url scheme方式。

如果有安装app,那么协议请求便会被app检测到。app打开期间,app界面会覆盖h5网页。所以访问打开app地址放在下载后面延迟执行,用户就看不到下载的跳转了。

如果未安装app,那协议请求就不会有任何效果。便会继续执行,直到跳转页面下载。

151ea2b093ddf1e45e0c0d1db5554cb0.png

首先要通过UA判断当前浏览器UA 并转大写。用来分别针对安卓和ios机型做2种不一样的处理。

641bcf87c3c5df63dd548ab58844af66.png

根据UA判断的安卓还是ios机型,分别做处理。

安卓设备:

通过隐藏iframe方式实现。iframe中请求协议启动地址,创建iframe需要时间,延迟一点时间,将iframe加入dom,产生请求。

如果app已安装,浏览器就会弹出一个提示框,问用户是否启动app。

如果未安装,浏览器等待一秒后就会去下载。

之所以使用iframe,为了防止location跳转后,js请求中断,跳入空白页。

代码中的Data.now()-t < 1200,只所以是1200,其实也是一个估计值,为了大部分解决一些已经安装的app,1秒后还是会跳转下载。因为打开app的瞬间,浏览器界面被app界面覆盖。但js未停止执行,延迟后还是会在后台打开下载页,只是被遮挡了。

17d74069db7fad3992b725e559930305.png

IOS设备:

首先,ios浏览器已经不支持再使用iframe了,所以上面的方式不适合用在ios上。

因此,这里只能采用location的方式。

如果安装了app,ios浏览器打开app协议前就会弹出个框,提示是否打开。

如果没有安装,就不会弹出这个提示。

3254db2b1fe1aa63490d2d08b950d93d.png

5b31325aff005690b81bdaa750a34a59.png
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值