User-Agent如何判断识别iPad设备?

2,491 阅读1分钟
  1. 现在的ipad和mac设备获取的ua信息几乎是一样的。所以目前普遍的ua匹配方式去判断移动设备or电脑会发现ipad不被视为移动设备,UA里不带iPad字样而是mac。
  2. 现在的iPad和MacBook屏幕尺寸是越来越接近(特别是iPad Pro和MacBook),无法从JS里获取屏幕比例去区分iPad。

解决方法: iPad的屏幕高始终>屏幕宽(不管你将屏幕竖着还是横着),而Mac的宽>高。

const isIpad =\
(/macintosh|mac os x/i.test(userAgent) &&\
window.screen.height > window.screen.width &&\
!userAgent.match(/(iPhone\sOS)\s([\d_]+)/)) ||\
userAgent.match(/(iPad).*OS\s([\d_]+)/);

99%的ipad都能区分出来,但是不排除有人用的竖屏显示器。