【发布时间】:2015-07-01 03:49:30
【问题描述】:
使用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
【问题讨论】:
-
请问您要解决哪个问题?视情况而定,除了基于用户代理检测设备之外,可能还有其他解决方案。
-
是的,你通常不应该有依赖于用户代理的代码......相反,最好在浏览器中检查你想要的功能。 modernizr.com 是一个很棒的免费图书馆。
-
我正在使用科尔多瓦,科尔多瓦文件应该只包含在设备中,而不是桌面浏览器中,甚至不包含在浏览器中可用的模拟选项中。
标签: javascript android linux