Javascript:确定它是桌面Linux还是Android

时间:2015-04-23 06:24:12

标签: javascript android linux

无法确定它是使用navigator.userAgent还是navigator.platform的Linux桌面计算机或Android设备,因为某些Android设备在两者中都有字符串linux。详情如下

Device                           OS               navigator.platform  
--------------------------------------------------------------------
Samsung Galaxy S3                Android 4.3      Linux armv7l
HTC One                          Android 4.4.2    Linux armv7l
Sony Xperia Z                    Android 4.2.2    Linux armv7l
Motorola Moto G                  Android 4.4.2    Linux armv7l
Samsung Galaxy Tab 3             Android 4.2.2    Linux i686
Nexus 10                         Android 4.4.2    Linux armv7l
Lenovo Yoga                      Android 4.2.2    Linux armv7l

navigator.userAgent

Mozilla/5.0 (Linux; U; Android 2.2; en-us; SCH-I800 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

即使我尝试过触摸事件,但Linux桌面可以触摸或者可以模拟触摸。请帮忙

更新:即使桌面浏览器的模拟设备处于活动状态,解决方案也应该检测Linux。 View Details

2 个答案:

答案 0 :(得分:2)

你可以试试这个:

if (navigator.userAgent.match(/android/i)) {
   // it's andorid
} else if (navigator.userAgent.match(/linux/i)) {
   // it's linux
}

答案 1 :(得分:0)

Browser identification based on detecting the user agent string is unreliable and is not recommended

现在浏览器检测不是一个好习惯,而是人们使用基于javascript或@media查询的特征检测。

我建议您阅读this answer,也许您可​​以从另一个角度看问题。