javascript - 如何使用 javascript 将 iPad Pro 检测为 iPad?

标签 javascript ios ios13 ipados

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

function isDeviceiPad(){
    return navigator.platform.match(/iPad/i);
}

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

为了进一步调查,我们深入研究了 navigator对象,同时检查 platformuserAgent ,并得到以下结果:
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,但导航器似乎没有返回 iPad就像旧 iPad 一样。

知道我们如何解决这个问题吗?

最佳答案

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);
}

关于javascript - 如何使用 javascript 将 iPad Pro 检测为 iPad?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57776001/

相关文章:

javascript - 他们是如何在 Bluestack 网站上创造出这种效果的

javascript - 使用一些逻辑在表中显示 Json 结果

iOS自动布局视觉格式语言翻译

uiviewcontroller - Storyboard 实例化 WithIdentifier 导致 iOS 13 崩溃

ios - 如何使用 ScrollView 单击列表部分内的项目以导航到详细信息页面 SwiftUI

javascript - JEdi​​table,如何处理 JSON 响应?

javascript - 时刻时区和_zones

ios:关闭计算机时,带有 fmdb 的 Sqlite 插入不会保留在模拟器上

iOS >> ShareKit >> 选择需要的分享服务

swift - 更改 UIITabbar 宽度 ios13 swift