-
[iOS] WKWebView User Agent ์ค์ (์น๋ทฐ์ ์น๋ธ๋ผ์ฐ์ ๊ตฌ๋ถํ๊ธฐ)๐ iOS/๊ฐ๋ฐ 2023. 5. 30. 17:44
์ฑ ์ ์์ ๋ํด์๋ง ๊ตฌํํ๊ณ ์ถ์ ๊ธฐ๋ฅ์ด ์์ ๋,
์น๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ๋ ๊ฒ์ ๋ง๊ณ ์ถ์ ๋,
…
๋ฑ๋ฑ ์น๋ทฐ๋ก ์ ์ํ๋์ง ์น๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ๋์ง ๊ตฌ๋ถ์ด ํ์ํ ๊ฒฝ์ฐ๊ฐ ์์ต๋๋ค.
์ด ๋ ์ฌ์ฉํ ์ ์๋ ๊ฒ์ด User Agent ๊ฐ์ ๋๋ค.
์ฐ์ ์น๋ทฐ์ ์น๋ธ๋ผ์ฐ์ ๊ฐ๊ฐ์ User Agent ๊ธฐ๋ณธ๊ฐ์ ์ถ๋ ฅํด๋ณด๊ฒ ์ต๋๋ค.
๐ ์น๋ทฐ
// Swift
self.webView.evaluateJavaScript("navigator.userAgent") { (result, error) in
let defaultUserAgent: String = result as! String
print("defaultUserAgent : \(defaultUserAgent)")
}๐ ์น๋ธ๋ผ์ฐ์
// JavaScript
alert(navigator.userAgent);๐ User Agent๊ฐ
- iphone, webview
mozilla/5.0 (iphone; cpu iphone os 15_0_1 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148
- iphone, safari
mozilla/5.0 (iphone; cpu iphone os 15_0_1 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/15.0 mobile/15e148 safari/604.1
- iphone, chrome
mozilla/5.0 (iphone; cpu iphone os 15_0 like mac os x) applewebkit/605.1.15 (khtml, like gecko) crios/94.0.4606.52 mobile/15e148 safari/604.1
- android, webview
mozilla/5.0 (linux; android 11; sm-a908n build/rp1a.200720.012; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/94.0.4606.80 mobile safari/537.36
- android, chrome
mozilla/5.0 (linux; android 11; sm-a908n) applewebkit/537.36 (khtml, like gecko) chrome/94.0.4606.71 mobile safari/537.36๋จผ์ iOS๋ง ํ์ธํด๋ณด๋ฉด
์น๋ทฐ์์๋ 'safari'๊ฐ์ด ์ถ๋ ฅ๋์ง ์์ง๋ง, ์น๋ธ๋ผ์ฐ์ ์์๋ ์ด ๋ ๊ฐ์ด ์ถ๋ ฅ๋๋ ๋ชจ์ต์ ๋๋ค.
๋ฐ๋ผ์ User Agent ๊ฐ์ 'safari'๊ฐ ๋ค์ด๊ฐ๋ฉด ์น๋ธ๋ผ์ฐ์ ๋ผ๊ณ ํ๋จํ๋ฉด ๋ ๊ฒ ๊ฐ์ง๋ง
์น๋ทฐ๊ฐ ์ฅ์ฐฉ๋ ์ฑ์ด๋ผ๋ฉด Android OS๋ก๋ ๋ฐฐํฌ๊ฐ ๋์์ ํ๋ฅ ์ด 99.9%์ด๋ฏ๋ก Android ์น๋ทฐ์์๋ ํ์ธํด๋ณด๋ฉด
์ฌ๊ธฐ๋ ์น๋ทฐ์ธ๋ฐ๋ 'safari'๊ฐ ๋ค์ด๊ฐ๋๋ค (...)
๋ฐ๋ผ์ iOS/Andriod OS ๋ค์ดํฐ๋ธ ์์ค์ User Agent ๊ฐ์ ์ปค์คํ ํด์ฃผ์ด์ผ ์น๋ทฐ์ ์น๋ธ๋ผ์ฐ์ ๋ฅผ ๊ตฌ๋ถํ ์ ์๊ฒ ์ต๋๋ค.
// Swift
self.webView.evaluateJavaScript("navigator.userAgent") { (result, error) in
let defaultUserAgent: String = result as! String
let customUserAgent: String = defaultUserAgent + " MyApp iOS"
self.webView.customUserAgent = customUserAgent
}์๋ ๊ฒ์!
์ ๋ ๊ธฐ์กด User Agent๊ฐ์ ์ ์งํ๋ ์ฑ์์ ์ ์ํ์์ ํ๋ณํ๊ธฐ ์ํด ์ปค์คํ ๋ฌธ์์ด์ ๋ง๋ถ์ฌ์ฃผ์์ต๋๋ค.
์นด์นด์คํก ์น๋ทฐ์ ๊ฒฝ์ฐ์๋ ๊ธฐ์กด User Agent ๊ฐ์ ์ ์งํ๊ณ ๋งจ ๋ค์ ์ปค์คํ ๋ฌธ์์ด " KakaoTalk 9.5.1(๋ฒ์ ์ ๋ณด)"์ ๋ง๋ถ์๋ค์!
๊ธฐ์กด User Agent ๊ฐ์ ์ฌ์ฉํ๊ณ ์ถ์ง ์๋ค๋ฉด customUserAgent์ ๋ค์ด๋ ํธ๋ก ์ํ๋ ๋ฌธ์์ด์ ๋ฃ์ด์ฃผ๋ฉด ๋ฉ๋๋ค.
๊ทธ๋ฌ๋ฉด ์ด์ ์น์์๋ ์ฌ์ฉ์๊ฐ ์น๋ทฐ๋ก ์ ์ํ๋์ง ์น๋ธ๋ผ์ฐ์ ๋ก ์ ์ํ๋์ง ๋ค์๊ณผ ๊ฐ์ด ํ๋ณํ ์ ์์ต๋๋ค๐
// JavaScript
var userAgent = navigator.userAgent.toLowerCase();
if (userAgent.indexOf('myapp') > -1) {
alert('์น๋ทฐ ์ ์');
} else {
alert('์น๋ธ๋ผ์ฐ์ ์ ์');
}
์ฐธ๊ณ
https://kakao-tam.tistory.com/110
'๐ iOS > ๊ฐ๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ