2013-05-26 11 views
6

Jaki jest najprostszy sposób, aby wykryć, czy urządzenie jest urządzeniem mobilnym z javascript?najprostszy sposób na wykrycie, czy urządzenie mobilne z javascript

Zastanawiałem się, czy wysokość jest mniejsza lub równa wysokości rzutni przeglądarki iPhone'a. Mówiąc o tym, jaka jest wysokość iPhona lub wspólnej rzutni dla urządzeń mobilnych?

Miałem pewne problemy z window.height; w javascript, ponieważ wracał niezdefiniowany, jednak?

Ktoś wie, jak najlepiej i po prostu wykryć, czy przeglądarka jest urządzeniem mobilnym z javascript?

+0

patrz http://stackoverflow.com/questions/6666907/how-to-detect-a-mobile-device-with-javascript –

+0

@ TamilSelvan ah, okay. A co z moim rozwiązaniem użycia 'window.height' i porównania tego z wysokością rzutni przeglądarki iPhone'a. Masz pomysł, jak to zrobić? –

+0

użyj 'screen.height' –

Odpowiedz

20

To, co mam dla mojego projektu hobby:

var Environment = { 
    //mobile or desktop compatible event name, to be used with '.on' function 
    TOUCH_DOWN_EVENT_NAME: 'mousedown touchstart', 
    TOUCH_UP_EVENT_NAME: 'mouseup touchend', 
    TOUCH_MOVE_EVENT_NAME: 'mousemove touchmove', 
    TOUCH_DOUBLE_TAB_EVENT_NAME: 'dblclick dbltap', 

    isAndroid: function() { 
     return navigator.userAgent.match(/Android/i); 
    }, 
    isBlackBerry: function() { 
     return navigator.userAgent.match(/BlackBerry/i); 
    }, 
    isIOS: function() { 
     return navigator.userAgent.match(/iPhone|iPad|iPod/i); 
    }, 
    isOpera: function() { 
     return navigator.userAgent.match(/Opera Mini/i); 
    }, 
    isWindows: function() { 
     return navigator.userAgent.match(/IEMobile/i); 
    }, 
    isMobile: function() { 
     return (Environment.isAndroid() || Environment.isBlackBerry() || Environment.isIOS() || Environment.isOpera() || Environment.isWindows()); 
    } 
}; 

Twoje rozwiązanie o używaniu wymiar nie jest dobrym rozwiązaniem. Opiera się na rzeczywistym wymiarze urządzenia i wielu innych zmiennych.

+0

To wygląda dobrze! Dziękuję za podzielenie się. Ale w jaki sposób mógłbym go wdrożyć lub wykorzystać? Na przykład czy po prostu robię 'if (isMobile()) {// myCodeHere}' –

+0

jaka jest różnica między twoim kodem a tym czy jest to po prostu zwięzła wersja? 'if (/Android|webOS|iPhone|iPad|iPod|BlackBerry/i.test(navigator.userAgent)) {// jakiś kod ...}' –

+3

Różnica polega na tym, że mój kod jest bardziej możliwy do usunięcia i bardziej czytelny. Ilekroć chcesz wykryć środowisko mobilne, musisz napisać tak długie, jeśli oświadczenie i może być podatne na błędy, z kopalniami, po prostu wywołanie funkcji "Environment.isMobile()". Aby z niego skorzystać, możesz dołączyć ten kod do jednego z plików javascript. A następnie proste wykonaj 'if (Environment.isMobile()) {...}' – dchhetri

Powiązane problemy