2011-08-24 33 views
1

我正在尋找使用普通JS檢測webOS平板電腦的最佳方法,並且如果使用jQuery更容易。平板電腦的用戶代理應該是這個樣子:什麼是使用jQuery/plain JS檢測webOS平板電腦的最佳方式

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)/); 

回答

0

我不知道如果你能做到的任何特徵只能識別WebOS的檢測。它基於WebKit,因此所有其他基於WebKit的平臺都具有相同的功能。縱觀Zepto.js'來源,他們正在做的,你是完全一樣的:

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

(第2捕獲是版本)

detect.js

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; 
    } 
} 

ONLY的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

相關問題