纯JS判断iPhone准确机型,iPhone6~iPhoneXs Max

工作中所用到的对于iPhone各类机型的准确识别

亲测可用,现在分享一下:

      //iPhone 6/6s/7/8

       let isIPhone6 =
        /iphone/gi.test(window.navigator.userAgent) &&
        window.devicePixelRatio &&
        window.devicePixelRatio === 3 &&
        window.screen.width === 375 &&
        window.screen.height === 667

      //iPhone 6p/6sp/7p
      let isIPhone6p =
        /iphone/gi.test(window.navigator.userAgent) &&
        window.devicePixelRatio &&
        window.devicePixelRatio === 3 &&
        window.screen.width === 414 &&
        window.screen.height === 736

      // iPhone X、iPhone XS
      let isIPhoneX =
        /iphone/gi.test(window.navigator.userAgent) &&
        window.devicePixelRatio &&
        window.devicePixelRatio === 3 &&
        window.screen.width === 375 &&
        window.screen.height === 812

      // iPhone XS Max
      let isIPhoneXSMax =
        /iphone/gi.test(window.navigator.userAgent) &&
        window.devicePixelRatio &&
        window.devicePixelRatio === 3 &&
        window.screen.width === 414 &&
        window.screen.height === 896

      // iPhone XR
      let isIPhoneXR =
        /iphone/gi.test(window.navigator.userAgent) &&
        window.devicePixelRatio &&
        window.devicePixelRatio === 2 &
        window.screen.width === 414 &&
        window.screen.height === 896

console.log(isIPhone6)
console.log(isIPhone6p)
console.log(isIPhoneX)
console.log(isIPhoneXSMax)
console.log(isIPhoneXR)

/*************************End*******************************/

当然,实现功能时要简化代码和对iOS系统更精准的判断时,可以在上述代码之前加上下面这一行判断:

var isIOS = /^(iPhone|iPad|iPod|Pike)/ig.test(navigator.platform) || !!userAgent.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/);

另外,对于不同的需求,如:

判断微信
var isWeiXin = /MicroMessenger/i.test(navigator.userAgent);

判断安卓

var isAndroid = userAgent.indexOf("Android") > -1 || userAgent.indexOf("Adr") > -1;

判断PC端
var isPC = /^(Win)/ig.test(navigator.platform) || userAgent.indexOf("Windows NT ") > 0;

希望能帮到大家,少走弯路。多一些分享,就少造一些轮子!

希望我传达到了一份“愿意分享”的心!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Longsir_

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值