如何在Safari浏览器上检测iPad的用户代理?

9
当我在Chrome上使用iPad时,UserAgent是:
Mozilla/5.0 (iPad; CPU OS 9_3_5 like Mac OS X) AppleWebKit/601.1 (KHTML, like Gecko) CriOS/57.0.2987.137 Mobile/13G36....
但在Safari上的iPad是:
(Macintosh; Intel Mac OS X 10_15) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15
而MacOS的UserAgent是:
Safari: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/75.0.3770.100 Safari/537.36
问题:由于在iPadOS上,Safari上的用户代理与MacOS笔记本电脑上相同,请参见此链接,并且我在Mobile_Detect php库中遇到了此问题

是的,同样的问题,当尝试检测移动Safari浏览器时,iPad(iOS14)上的用户代理是无用的。它被报告为Mac OS(不再是iPad)Safari。在iPad上使用Firefox也发生了同样的事情。我只能检测到Chrome,因为它显示为移动Chrome。 - Boris Gafurov
这听起来像是一个非常愚蠢的举动,让iPad假装它们是Mac。特别是当Mac和iPad之间有如此多的API差异时...我很好奇为什么苹果认为这是个好主意... - Sharcoux
1个回答

13

检测iPad,可以尝试以下方法:

let isIpad = /Macintosh/i.test(navigator.userAgent) && navigator.maxTouchPoints && navigator.maxTouchPoints > 1;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接