我正在寻找使用纯JS检测webOS平板电脑的最佳方法,并且如果使用jQuery则更简单。平板电脑的用户代理应如下所示:

User-Agent:Mozilla/5.0 (webOS/1.3; U; en-US) AppleWebKit/532.2 (KHTML, like Gecko) Version/1.0 Safari/532.2 Desktop/1.0


所以一个简单的方法是:

var deviceAgent = navigator.userAgent.toLowerCase();
webOS = deviceAgent.match(/(webos)/);


那已经是最好的方法了吗?您可能会说检测需要确定存在的功能,但这对我不起作用,因为我想要的功能已存在,但无法像在任何台式机上一样正常工作,所以我真的只想知道是否使用此webOS设备。

更新:刚刚发现平板电脑确实使用了另一个用户代理:

Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; xx-xx) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.48 Safari/534.6 TouchPad/1.0


因此,上述内容可能应该是:

var deviceAgent = navigator.userAgent.toLowerCase();
webOS = deviceAgent.match(/(webos|hpwos)/);

最佳答案

我不知道您是否可以进行只能识别WebOS的功能检测。它是基于WebKit的,因此所有其他基于WebKit的平台都将具有相同的功能。查看Zepto.js'来源,他们所做的与您完全相同:

ua.match(/(webOS|hpwOS)[\s\/]([\d.]+)/)


(第二个捕获是版本)

来自detect.js

09-20 14:30