首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用javascript检测iPad Pro作为iPad?

如何使用javascript检测iPad Pro作为iPad?
EN

Stack Overflow用户
提问于 2019-09-03 17:01:59
回答 9查看 42.5K关注 0票数 22

我们能够使用这样的javascript检测到一个iPad设备:

代码语言:javascript
复制
function isDeviceiPad(){
    return navigator.platform.match(/iPad/i);
}

这在检测iPad设备时非常有效,但是当我们从iPad Pro (10.5 inch)中检查时,它并不能检测到它是否是iPad。

为了进一步研究,我们深入研究了navigator对象,检查了platformuserAgent,得到了以下结果:

代码语言:javascript
复制
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

知道我们怎么解决这个问题吗?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2019-09-08 00:40:03

我猜iPad Pro升级到iPadOS 13 Beta。由于苹果声称带Safari的桌面类浏览在iPadOS上,移动Safari似乎也模仿了macOS的行为和用户代理。

所以,简单的回答是--是不可能的。

然而,您可以尝试从答案到这个问题的解决办法。

票数 25
EN

Stack Overflow用户

发布于 2019-11-21 16:15:08

iPadPro报告navigator.platform浏览器为“MacIntel”,但这与其他平台相同。

目前(2019年),iPadPro与其他平台的不同之处在于,iPadPro是启用触摸的。

以下是几种有用的方法。

代码语言:javascript
复制
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);
}
票数 33
EN

Stack Overflow用户

发布于 2020-10-27 16:51:11

目前,在2020年10月,我所知道的唯一途径是:

代码语言:javascript
复制
(navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 0) || navigator.platform === 'iPad'
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57776001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档