使用jQuery / plain JS检测webOS平板电脑的最佳方法是什么?

时间:2011-08-24 10:00:21

标签: javascript jquery webos

我正在寻找使用普通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)/);

2 个答案:

答案 0 :(得分:2)

这是PHP中的一个功能,可以检测WebOS以及您可能需要的任何其他移动设备。代码少于1kb =)

function detectMobileDevice() {
    if(preg_match('/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i', $_SERVER['HTTP_USER_AGENT'])) {
        return true;
    }
    else {
        return false;
    }
}

如果您只想做webOS,请将第2行更改为:

if(preg_match('/(webos)/i', $_SERVER['HTTP_USER_AGENT'])) {

使用:

if(detectMobileDevice()) {
    // If mobile device detected, do something
}
else {
   // Otherwise, do something else...
}

如果您需要更多详细信息,请访问:http://www.justindocanto.com/scripts/detect-a-mobile-device-in-php-using-detectmobiledevice

答案 1 :(得分:0)

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

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

(第二次捕获是版本)

来自detect.js