前端根据机型跳转对应市场下载app(干货)

该文章描述了一个H5界面的实现,当用户点击下载按钮时,系统会判断用户设备类型,然后引导用户去相应的应用商店(如iOS的AppStore或Android的GooglePlay)。如果从非浏览器环境(如微信)打开,则会显示引导用户用浏览器打开的提示。代码示例中展示了如何使用JavaScript进行浏览器检测和处理下载逻辑。
摘要由CSDN通过智能技术生成

如果可以实现记得点赞分享,谢谢老铁~

1.需求描述

H5界面,通过用户点击下载,判断机型,引导到各自的应用商店。

2.使用场景

先看个效果图:
在这里插入图片描述

注意:点击下载后这里需要有一个引导遮罩图:

在这里插入图片描述
因为如果不是从浏览器打开的,就需要再次引导 ,好比从微信打开~

3.页面布局
   <div>
   	 <!--这是一张下载页的图片-->
      <img src="/image/downloadZh.png" alt="download" />
      <div>
        <button type="button" onClick={downloadApp}>立即下载</button>
      </div>
      <div isShow={isShow}>
      	 <!--这是一张引导到浏览器打开的图片-->
        <img src="/image/tipZh.png" alt="tip" />
      </div>
    </div>
4.js 逻辑处理
const [isShow, setIsShow] = useState(false)
const downloadApp = () => {
        /*  
         * 智能机浏览器版本信息:  
         *  
         */
        const nav: any = window.navigator
        const browser = {
            versions: function () {
                const userAgent = window.navigator.userAgent
                return { //移动终端浏览器版本信息  
                    trident: userAgent.indexOf('Trident') > -1, //IE内核  
                    presto: userAgent.indexOf('Presto') > -1, //opera内核  
                    webKit: userAgent.indexOf('AppleWebKit') > -1, //苹果、谷歌内核  
                    gecko: userAgent.indexOf('Gecko') > -1 && userAgent.indexOf('KHTML') == -1, //火狐内核  
                    mobile: !!userAgent.match(/AppleWebKit.*Mobile.*/) || !!userAgent.match(/AppleWebKit/), //是否为移动终端  
                    ios: !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/), //ios终端  
                    android: userAgent.indexOf('Android') > -1 || userAgent.indexOf('Linux') > -1, //android终端或者uc浏览器  
                    iPhone: userAgent.indexOf('iPhone') > -1 || userAgent.indexOf('Mac') > -1, //是否为iPhone或者QQHD浏览器  
                    iPad: userAgent.indexOf('iPad') > -1, //是否iPad  
                    webApp: userAgent.indexOf('Safari') == -1, //是否web应该程序,没有头部与底部 
                    weixin: userAgent.match(/MicroMessenger/i) == 'MicroMessenger',
                    alipay: userAgent.match(/AlipayClient/i) == 'AlipayClient'
                };
            }()
        }
        if (browser.versions.weixin) {
            setIsShow(true)
            return false;
        }
        var platformType = "";
        if (browser.versions.ios || browser.versions.iPhone || browser.versions.iPad) {
            platformType = "ios";
            window.location.href = 'https://apps.apple.com/app/idxxxxxx'
        } else {
            platformType = "android";
            window.location.href = 'https://play.google.com/store/apps/details?id=xxx.xxx.xxx '
        }
}

如果可以实现记得点赞分享,谢谢老铁~

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端加油站

你遇到的坑将由我来踩

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值