์์ ์ ๋ง๋ค์๋ ๊ธฐ๋ฅ์ ๋ฌธ์ ๊ฐ ์๊ฒผ๋ค. ๋ชจ๋ฐ์ผ ๋ธ๋ผ์ฐ์ ๋ฅผ ๊ฐ์งํ๋ ๋ชฉ์ ์ผ๋ก navigator.userAgent ์์ฑ์ ์ฌ์ฉํ์๋๋ฐ ์ด๋ ๊ฒ ํ๋ ๋ฐ์คํฌํฑ ๋ชจ๋๋ฅผ ํจ ๋ชจ๋ฐ์ผ ๊ธฐ๊ธฐ๋ ๊ตฌ๋ถ์ด ์๋๋ค๋ ๊ฒ์ด๋ค. ํ์ธํด๋ณด๋ ๋ชจ๋ฐ์ผ ๋ธ๋ก์ฐ์ ์์ ๋ฐ์คํฌํฑ ๋ชจ๋๋ฅผ ์ฌ์ฉํ๋ฉด user agent ๋ฌธ์์ด์์ "Android" ๋ฌธ์์ด์ด ์ฌ๋ผ์ง๋ค…
์ด๋์ ๋ ์ฐพ์๋ณด๋ ์ ์ด์ user agent ๋ฌธ์์ด์ ์ฝ๊ฒ ์กฐ์์ด ๊ฐ๋ฅํด ๋ค๋ฅธ ๋ฐฉ๋ฒ๋ค๊ณผ ๊ฐ์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค๊ณ ํ๋ค. ์๋ฅผ ๋ค์ด, ๋ฐ์ ์ฒ๋ผ ์คํฌ๋ฆฐ ์ฌ์ด์ฆ์ ํฐ์น ์คํฌ๋ฆฐ์ ์ ๋ฌด๋ฅผ ํ์ธํ๋ค๋ ์์ผ๋ก.
var uagent = navigator.userAgent.toLowerCase();
var isTablet = (/ipad|xoom|sch-i800|(android(?!.*mobile))|playbook|tablet|kindle/i.test(uagent));
var isMobile = (/mobile|iphone|ipod|blackberry|windows\sce|palm|smartphone|iemobile|NOKIA/i.test(uagent));
var isSmallScreen = window.matchMedia('(max-width: 800px)').matches;
var isTouchDevice = 'maxTouchPoints' in navigator && navigator.maxTouchPoints > 0;
var isMobileDevice = isTablet || isMobile || (isSmallScreen && isTouchDevice);
window.matchMedia(): ๋ฌธ์์ด ํํ์ ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ๋ฐ์ ํ์ฌ document๊ฐ ํด๋น ๋ฏธ๋์ด ์ฟผ๋ฆฌ๋ฅผ ์ถฉ์กฑํ๋์ง ํ์ธ.
navigator.maxTouchPoints: ๊ธฐ๊ธฐ์์ ๋์์ ํฐ์นํ ์ ์๋ ์ง์ ์ ๊ฐ์๋ฅผ ๋ฐํ (Desktop์ 0์ ๋ฐํ)
isSmallScreen๊ณผ isTouchDevice๋ฅผ &&๋ก ๋ฌถ์ ์ด์ ๋ ํฐ์น ๊ธฐ๋ฅ์ด ์๋ ๋ ธํธ๋ถ์ ๊ฑธ๋ฌ๋ด๊ธฐ ์ํด์์ด๋ค.
๋ฌผ๋ก ์ด ๋ฐฉ๋ฒ๋ ์๋ฒฝํ ๋ฐฉ๋ฒ์ ์๋๋ผ์ง๋ง ์ผ๋จ ์ฌ๋งํ๊ฑด ์ด๊ฑธ๋ก ๊ฐ์ง ๋๋ ๊ฒ ๊ฐ๋ค.
'JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ๋ฐ์คํฌํฑ ๋ชจ๋์์ ๋ชจ๋ฐ์ผ OS ๊ตฌ๋ถํ๊ธฐ (navigator.platform) (1) | 2024.02.06 |
---|