๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

JavaScript

[JavaScript] ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ € ๊ฐ์ง€ํ•˜๊ธฐ

์˜ˆ์ „์— ๋งŒ๋“ค์—ˆ๋˜ ๊ธฐ๋Šฅ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ฒผ๋‹ค. ๋ชจ๋ฐ”์ผ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ชฉ์ ์œผ๋กœ 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๋ฅผ &&๋กœ ๋ฌถ์€ ์ด์œ ๋Š” ํ„ฐ์น˜ ๊ธฐ๋Šฅ์ด ์žˆ๋Š” ๋…ธํŠธ๋ถ์„ ๊ฑธ๋Ÿฌ๋‚ด๊ธฐ ์œ„ํ•ด์„œ์ด๋‹ค.

๋ฌผ๋ก  ์ด ๋ฐฉ๋ฒ•๋„ ์™„๋ฒฝํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋‹ˆ๋ผ์ง€๋งŒ ์ผ๋‹จ ์›ฌ๋งŒํ•œ๊ฑด ์ด๊ฑธ๋กœ ๊ฐ์ง€ ๋˜๋Š” ๊ฒƒ ๊ฐ™๋‹ค.