如何在 iOS 13 及以上版本中检测 iPad 和 iPad OS 版本?

新手上路,请多包涵

我可以在 iPhone 上检测到 iOS 13,但在 iPad OS 13 navigator.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 并完美运行。

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

原文由 Madusanka 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 748
1 个回答

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

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

原文由 Stenerson 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题