2011-08-24 2 views
1

Je suis à la recherche de la meilleure façon de détecter une tablette webOS en utilisant JS simple et si c'est aussi plus facile d'utiliser jQuery. L'agent utilisateur de la tablette devrait ressembler à ceci:Quelle est la meilleure façon de détecter une tablette webOS avec jQuery/plain JS

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 

donc un moyen facile serait:

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

Est-ce que la meilleure façon de le faire déjà? Vous allez probablement dire détecter la fonctionnalité dont vous avez besoin pour être certain, mais cela ne fonctionnera pas pour moi parce que la fonctionnalité que je veux est présente mais ne fonctionne pas comme sur n'importe quel bureau, donc je veux juste savoir c'est un appareil webOS ou non.

Mise à jour: Juste trouvé que la tablette utilise vraiment un autre agent utilisateur:

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 

Ainsi, l'être devrait probablement au-dessus plutôt:

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

Répondre

0

Je ne sais pas si vous pouvez faire une fonction détection qui identifiera seulement WebOS. C'est basé sur WebKit, donc toutes les autres plates-formes basées sur WebKit auront les mêmes fonctionnalités. En regardant Zepto.js' la source, ils font exactement la même chose que vous:

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

(La 2ème capture est la version)

De detect.js

2

Voici une fonction en PHP qui permet de détecter WebOS et tout autre appareil mobile dont vous pourriez avoir besoin. Moins de 1 Ko code =)

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

si vous voulez faire SEULEMENT webOS, ligne de changement 2:

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

à utiliser:

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

si vous avez besoin de plus de détails, visitez ici: http://www.justindocanto.com/scripts/detect-a-mobile-device-in-php-using-detectmobiledevice

Questions connexes