Won*_*nka 19 javascript ios ios13 ipados
我们能够使用 javascript 检测 iPad 设备,如下所示:
function isDeviceiPad(){
return navigator.platform.match(/iPad/i);
}
Run Code Online (Sandbox Code Playgroud)
这在检测 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)';
Run Code Online (Sandbox Code Playgroud)
问题是navigator.platform = 'MacIntel'(与 MacBook Pro 相同)返回而不是iPad. 我们需要一种方法来检测这是 iPad 而不是 MacBook Pro,但导航器似乎iPad不像旧 iPad那样返回。
知道我们如何解决这个问题吗?
Ste*_*gin 25
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);
}
Run Code Online (Sandbox Code Playgroud)
boj*_*ojo 16
目前,在 2020 年 10 月,我知道的唯一方法是:
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad'
Run Code Online (Sandbox Code Playgroud)
小智 7
您可以为此使用正则表达式。
var isIPadPro = /Macintosh/.test(navigator.userAgent) && 'ontouchend' in document;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27038 次 |
| 最近记录: |