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

๋นˆ ๊ตฌ๋ฉ ์ฑ„์šฐ๊ธฐ

[Android][WebView] ์›น๋ทฐ ๋งํฌ ์‹คํ–‰ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰ ์ถ”์ 

* ์‚ฝ์งˆ๊ณผ ํ—ค๋ฉ”๋Š” ๊ณผ์ •์˜ ๊ธฐ๋ก๐Ÿ˜ต

 

์‹œ์ž‘

๊ธฐํš์ž์—๊ฒŒ์„œ ์›น๋ทฐ์˜ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋…ธ์ถœ๋˜๋Š” ๊ฒƒ์„ Google Anayltics๋กœ ์ถ”์ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์š”์ฒญ๋ฐ›์Œ

 

์˜๋ฌธ๊ณผ ํ…Œ์ŠคํŠธ

1) ์›น๋ทฐ์˜ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋กœ ์ด๋™ํ•˜๋Š”๊ฐ€?

> ํ…Œ์ŠคํŠธ ํฐ(Galaxy A21, OS12)์—์„œ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ์„ค์ •๋œ ์›น๋ทฐ์—์„œ ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰๋˜๋ฉฐ ํ•ด๋‹น ํŽ˜์ด์ง€๊ฐ€ ๋…ธ์ถœ๋๋‹ค.

์ด ๋•Œ๊นŒ์ง€๋Š” ์š”์ฒญ ์‚ฌํ•ญ์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ์— ๋ฌธ์ œ๋Š” ์—†๊ฒ ๊ตฌ๋‚˜ ์‹ถ์—ˆ๋‹ค.

์™œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰๋˜๋Š”์ง€๋Š” ์›น๋ทฐ ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ๊นŒ๋ณผ ์ˆ˜๊ฐ€ ์—†์–ด์„œ ํ™•์ธํ•˜์ง€๋Š” ๋ชปํ–ˆ๋‹ค. 

๊ทธ๋Ÿฐ๋ฐ Android Developers ๊ณต์‹ ๋ฌธ์„œ์—์„œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰์„ ๊ถŒ์žฅํ•˜๋Š” ๊ฒƒ์„ ํ™•์ธํ–ˆ๋‹ค. ๊ทธ๋ž˜์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋งํฌ ํŽ˜์ด์ง€ ์‹คํ–‰์€ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ํ•˜๋„๋ก ๊ฐ’์ด ์„ค์ •๋œ ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€ ์ถ”์ธก์„ ํ–ˆ๋‹ค. ๋ฌผ๋ก  ๋‹ค๋ฅธ ๋‹จ๋ง๋“ค์—์„œ๋„ ํ…Œ์ŠคํŠธํ•˜์ง€ ์•Š์•„์„œ, ์ผ๋ฐ˜ํ™”ํ•  ์ˆ˜๋Š” ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋‹ค. >> ๊ณต์‹๋ฌธ์„œ์— ๋Œ€ ๋†“๊ณ  ๋‚˜์˜ค๋Š” ๋ฐ ์ด ๋•Œ๋Š” ๋ชป์ฐผ์•˜๋‹ค. ์•„๋ž˜๋กœ ๋‚ด๋ ค๊ฐ€๋ฉด ๋‚˜์˜จ๋‹ค. ์ด ๋•Œ๋Š” ์ถ”์ธก๋งŒ ํ–ˆ๋‹ค.

https://developer.android.com/reference/android/webkit/WebView?hl=ko 

 

WebView  |  Android Developers

 

developer.android.com

https://developer.android.com/reference/android/webkit/WebView?hl=ko

 

2) ๊ทธ๋Ÿผ ์ด์ œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์‹คํ–‰ ์‹œ ์–ด๋–ป๊ฒŒ ์ถ”์ ํ•  ๊ฒƒ์ธ๊ฐ€

> WebViewClient๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋‚˜ ์‹ถ์—ˆ๋Š”๋ฐ, ์ด๊ฒƒ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งž์•˜๋‹ค.

https://developer.android.com/guide/webapps/webview?hl=ko#add-webview-oncreate
 

WebView์—์„œ ์›น ์•ฑ ๋นŒ๋“œ  |  Android ๊ฐœ๋ฐœ์ž  |  Android Developers

WebView์—์„œ ์›น ์•ฑ ๋นŒ๋“œ ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด ์ •๋ฆฌํ•˜๊ธฐ ๋‚ด ํ™˜๊ฒฝ์„ค์ •์„ ๊ธฐ์ค€์œผ๋กœ ์ฝ˜ํ…์ธ ๋ฅผ ์ €์žฅํ•˜๊ณ  ๋ถ„๋ฅ˜ํ•˜์„ธ์š”. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋˜๋Š” ์›นํŽ˜์ด์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์ผ๋ถ€๋กœ ์ œ๊ณตํ•˜๋ ค๋Š” ๊ฒฝ

developer.android.com

https://developer.android.com/guide/webapps/webview?hl=ko#add-webview-oncreate

๊ทธ๋Ÿฐ๋ฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ์ด์Šˆ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค.

WebViewClient๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋งํฌ ํƒญ ์‹œ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์›น๋ทฐ์—์„œ ํ•ด๋‹น ํŽ˜์ด์ง€๋กœ ์ฝ˜ํ…์ธ ๊ฐ€ ์ „ํ™˜๋˜์—ˆ๋‹ค. WebViewClient๋ฅผ ์˜ค๋ฒ„๋ผ์ด๋“œํ•˜์ง€๋„ ์•Š์•˜๋Š”๋ฐ, ์ด๊ฒƒ์„ ์‚ฌ์šฉํ–ˆ๋‹ค๋Š” ๊ฒƒ๋งŒ์œผ๋กœ ์›น๋ทฐ ๋™์ž‘์ด ๋ฐ”๋€Œ์—ˆ๋‹ค.

์ด ์ฝ”๋“œ ํ•œ ์ค„์ด ๋ถˆ๋Ÿฌ์˜จ ๋ณ€ํ™”

๊ทธ๋ฆฌ๊ณ  ์ฐพ์€ ๊ณต์‹ ๋ฌธ์„œ์˜ ๋‚ด์šฉ.

https://developer.android.com/guide/webapps/webview?hl=ko#HandlingNavigation

 

 

1)์—์„œ ์ถ”์ธกํ•œ ๋‚ด์šฉ์€ ์ถ”์ธกํ•  ํ•„์š”๋„ ์—†์ด ๊ณต์‹ ๋ฌธ์„œ์— ๋‚˜์™€์žˆ์—ˆ๋‹ค.  

๋‚˜๋Š” ์›น๋ทฐ์˜ ๋งํฌ๋ฅผ ์ถ”์ ํ•  ์ˆ˜ ๋ฐ–์— ์—†๊ธฐ์— WebViewClient๋ฅผ ์“ธ ์ˆ˜ ๋ฐ–์— ์—†๋Š”๋ฐ, WebViewClient๋Š” ์›น๋ทฐ ๋‚ด์—์„œ ๋งํฌ๋ฅผ ์—ฌ๋Š” ์นœ๊ตฌ์˜€๋‹ค. WebViewClient๋Š” ์จ์„œ ์ถ”์ ์„ ํ•˜๋˜ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋‹ค.

 

ํ•ด๊ฒฐ๋ฐฉ๋ฒ•

WebViewClient์˜ ShoudOverrideUrlLoading์—์„œ ๋งํฌ๋ฅผ ์™ธ๋ถ€ ์•ฑ ๋ธŒ๋ผ์šฐ์ €๋กœ ์—ด๋ฉด์„œ Google Analytics ์ฝ”๋“œ ์‚ฝ์ž…ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์˜ค๋ฒ„๋ผ์ด๋“œ.

https://developer.android.com/reference/android/webkit/WebViewClient#shouldOverrideUrlLoading(android.webkit.WebView,%20android.webkit.WebResourceRequest)
 

WebViewClient  |  Android Developers

 

developer.android.com

WebViewClinet๊ฐ€ ์—†์œผ๋ฉด Activity Manager๊ฐ€ ์™ธ๋ถ€ ๋ธŒ๋ผ์šฐ์ € ์•ฑ์„ ํ˜ธ์ถœํ•œ๋‹ค๊ณ  ์—ฌ๊ธฐ์—๋„ ์จ์žˆ๋‹ค.