我们能够使用这样的javascript检测到一个iPad设备:
function isDeviceiPad(){
return navigator.platform.match(/iPad/i);
}这在检测iPad设备时非常有效,但是当我们从iPad Pro (10.5 inch)中检查时,它并不能检测到它是否是iPad。
为了进一步研究,我们深入研究了navigator对象,检查了platform和userAgent,得到了以下结果:
navigator.platform = 'MacIntel';
navigator.userAgent = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15)
AppleWebKit/605.1.15 (KHTML, like Gecko) Version/13.0 Safari/605.1.15)';问题是返回的是navigator.platform = 'MacIntel' (与MacBook Pro相同),而不是iPad。我们需要一种方法来检测这是一个iPad而不是MacBook Pro,但是看起来导航器不像对旧的iPads那样返回iPad。
知道我们怎么解决这个问题吗?
发布于 2019-09-08 00:40:03
我猜iPad Pro升级到iPadOS 13 Beta。由于苹果声称带Safari的桌面类浏览在iPadOS上,移动Safari似乎也模仿了macOS的行为和用户代理。
所以,简单的回答是--是不可能的。
然而,您可以尝试从答案到这个问题的解决办法。
发布于 2019-11-21 16:15:08
iPadPro报告navigator.platform浏览器为“MacIntel”,但这与其他平台相同。
目前(2019年),iPadPro与其他平台的不同之处在于,iPadPro是启用触摸的。
以下是几种有用的方法。
function isIOS() {
if (/iPad|iPhone|iPod/.test(navigator.platform)) {
return true;
} else {
return navigator.maxTouchPoints &&
navigator.maxTouchPoints > 2 &&
/MacIntel/.test(navigator.platform);
}
}
function isIpadOS() {
return navigator.maxTouchPoints &&
navigator.maxTouchPoints > 2 &&
/MacIntel/.test(navigator.platform);
}发布于 2020-10-27 16:51:11
目前,在2020年10月,我所知道的唯一途径是:
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad'https://stackoverflow.com/questions/57776001
复制相似问题