gpt4 book ai didi

javascript - 使用 JavaScript 检测非移动设备

转载 作者:行者123 更新时间:2023-11-28 10:54:26 25 4
gpt4 key购买 nike

在投票重复之前:

请阅读下面的完整问题。我在那里解释了为什么“如何检测移动设备?” 这里不是一个例子

问题(以及为什么这不是简单地否定移动开发检测):

有很多关于“如何使用 JavaScript 检测移动设备?”的问题(最好的问题之一,如果您正在寻找它: What is the best way to detect a mobile device in jQuery? ),但我想问有点不同:“如何使用 JavaScript 检测非移动设备?”

您可能会想,当我可以进行这样的移动检测时:

if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile
|Opera Mini/i.test(navigator.userAgent)){

alert('mobile');
}

我可以在 if 内的语句之前放置否定,这将检查非移动设备。 并非如此。

上面的代码检测移动设备的多个版本。对于所有无法识别的设备,我们无法 100% 确定它们不是移动设备。 如果 userAgent 包含键入文字之一(webOS、iPone 等),那么它肯定是移动设备。 如果没有,有两种方式:

  1. 这不是移动设备
  2. 这是我们未列出的移动设备(错误、外来设备、我们编写代码后发布的设备等)

因此,我不想否定移动设备的测试,而是想为非移动设备(Linux/Windows PC、Mac 等)编写测试。这样,如果结果为真,我将 100% 确定我处理的是非移动设备。在另一种情况下 - 它相当具有移动性,但这只是一个强有力的假设

所以基本上,只有当我 100% 确定它是非移动设备时我才会使用react,当我不确定时,我不想采取任何步骤(或者我假设它是移动设备)。

这个公式看起来怎么样?针对 Windows 进行测试是否安全(Windows Phone 或类似的东西也可以使用该文字?)? Mac、Linux PC 和其他电脑怎么样?

最佳答案

这取自here :

var BrowserDetect = function() {
var nav = window.navigator,
ua = window.navigator.userAgent.toLowerCase();
// detect browsers (only the ones that have some kind of quirk we need to work around)
if (ua.match(/ipad/i) !== null)
return "iPod";
if (ua.match(/iphone/i) !== null)
return "iPhone";
if (ua.match(/android/i) !== null)
return "Android";
if ((nav.appName.toLowerCase().indexOf("microsoft") != -1 || nav.appName.toLowerCase().match(/trident/gi) !== null))
return "IE";
if (ua.match(/chrome/gi) !== null)
return "Chrome";
if (ua.match(/firefox/gi) !== null)
return "Firefox";
if (ua.match(/webkit/gi) !== null)
return "Webkit";
if (ua.match(/gecko/gi) !== null)
return "Gecko";
if (ua.match(/opera/gi) !== null)
return "Opera";
//If any case miss we will return null
return null;
};

它不是很优雅,但您可以根据自己的喜好添加/删除它。

第二个答案,虽然我知道您正在专门寻找非移动检测,但您也可以使用 http://detectmobilebrowsers.com/它具有几乎完整的移动设备检测(即使是不太受欢迎的设备)。

关于javascript - 使用 JavaScript 检测非移动设备,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26717720/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com