首页 > 解决方案 > 如何在 iOS 13 及更高版本中检测 iPad 和 iPad OS 版本?

问题描述

我可以在 iPhone 上检测到 iOS 13,但在 iPad OS 13navigator.platform中是 MacIntel。因此,无法使用以下代码识别 iPad,但它在 iPhone 上完美运行。

    if (/iP(hone|od|ad)/.test(navigator.platform)) {
            var v = (navigator.appVersion).match(/OS (\d+)_(\d+)_?(\d+)?/);
            var version = [parseInt(v[1], 10), parseInt(v[2], 10), parseInt(v[3] || 0, 10)];
            return version;
    }

当我们在 iPad 上使用浏览器请求移动网站时,navigator.platform将返回为 iPad 并完美运行。

谁能建议一种方法来识别在 iOS 13 及更高版本上运行的 iPad使用 Javascript?

标签: javascriptiosipadios13ipados13

解决方案


我能够通过检查navigator.maxTouchPoints以及navigator.platform. 它并不完美(如下面的评论中所讨论的),但它是迄今为止我遇到的最好的解决方案,所以我想分享一下。

const iPad = (userAgent.match(/(iPad)/) /* iOS pre 13 */ || 
  (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) /* iPad OS 13 */);

推荐阅读