DingMing

丁大铭的个人空间,用来分享一些前端小技巧,默默成长吧,哈哈

如何在iOS13的Safari中检测设备名称

  |  
 阅读次数

Apple iOS 13之后,iPad iOS 13的Safari中的window.navigator.userAgent与MacOS相同。像这样:

1
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15
1
2
3
所以不能用之前方式来判断 是否是 ipad 了

/iPad|iPhone|iPod/.test(navigator.platform)

最佳答案

第一个条件是过时的,并且可以在以前的版本中使用, 而第二个条件适用于iPad OS 13,现在将其标识为“ Mozilla / 5.0(Macintosh; Intel Mac OS X 10_15)AppleWebKit / 605.1.15(KHTML,如Gecko)”,我知道的所有平台检测器均未检测到(目前)既不是移动设备也不是台式机。

因此,由于iPad OS现在称自己为Macintosh,但实际的Mac不支持多点触控,因此该解决方案非常适合检测iPad OS设备,后者是现有的唯一多点触控“ Macintosh”设备。

附言 另外,您可能希望增强此检查以将IE排除在检测到的iOS设备之外

1
2
3
let isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1)) &&
!window.MSStream