๐ฑWKWebView Class
WKWebView ๊ฐ์ฒด๋ ์ฑ ๋ด๋ถ์ ๋ธ๋ผ์ฐ์ ์์ ์น ์ฝํ ์ธ ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
WKWebView ๋ ๋ค์ดํฐ๋ธ ๋ทฐ์ HTML, CSS, JavaScript ๋ก ํํ๋๋ ์น ๋ธ๋ผ์ฐ์ง์ ์ ๊ณตํฉ๋๋ค. ์ฑ์ ์ฝํ ์ธ ๋ฅผ ๋น๋ฒํ๊ฒ ๋ณ๊ฒฝํด์ผํ ๊ฒฝ์ฐ, ์น์ฑ์ ์ฌ์ฉํ๊ฒ ๋ ๊ฒ์ด์์. ๋ค์ดํฐ๋ธ ์ฑ๋ณด๋ค๋ ์น์ฑ์ ์น ์ฝํ ์ธ ๋ง ๋ฐฐํฌํ๋ฉด ๋๋ ์ข๋ ์ ์ฐํ ๋์ฒ๊ฐ ๊ฐ๋ฅํ๊ฒ ์ฃ .
๐ WKWebView Delegate
WKWebView ๋ delegate ๊ฐ์ฒด๋ฅผ ํตํด ์ ์ ์ ๊ฒฝํ๊ณผ ํ์์ ์ปจํธ๋กคํ ์ ์๋๋ก ์ ๊ณตํฉ๋๋ค. ์ฌ๊ธฐ์ ์ ์ ์ ๊ฒฝํ์ UI delegate, ํ์์ navigation delegate ๊ฐ ๋ด๋นํ๋ค๊ณ ์ดํดํ์ด์. ๐ค
navigation delegate (WKNavigationDelegate) ๋ฅผ ํตํด ์ ์ ๊ฐ ์น๋ทฐ ์ฝํ ์ธ ๋ด์ ๋งํฌ๋ฅผ ํด๋ฆญํ ๋ ๋ฐ์ํ๊ฑฐ๋, ํน์ ์กฐ๊ฑด์ด ์๋ ํ์ด์ง๋ค์ ํ์์ด ๋์ง ์๋๋ก ๋ง์ ์ ์์ต๋๋ค.
UI delegate (WKUIDelegate) ๋ฅผ ํตํด ์น ์ฝํ ์ธ ์ํธ์์ฉ์ ๋ํ ์๋ต์ ์ ๊ณตํ๊ธฐ ์ํด alert, context menus ๋ฑ์ native UI ์์๋ฅผ ๋ณด์ฌ์ค ์ ์์ต๋๋ค.
navigation, UI ์์ ํน์ ํ ๊ตฌํ์ด ํ์ํ๋ค๋ฉด ViewController ๊ฐ delegate ํ๋กํ ์ฝ์ ์ฑํํ๊ณ ๊ด๋ จ ๋ฉ์๋๋ฅผ ๊ตฌํํ๋ฉด ๋ฉ๋๋ค.
๐ฃ Embed a WKWebView object
View Controller ์ ๋ทฐ ๊ณ์ธต์ WKWebView ๊ฐ์ฒด๋ฅผ ์ถ๊ฐํ๊ณ , URL ๋๋ HTML ์ ๋ก๋ํ๋ฉด ๋ฉ๋๋ค. ์น๋ทฐ์ ์ค์ ์ ์ปค์คํ ํ๊ธฐ ์ํด WKWebViewConfiguration ๊ฐ์ฒด๋ฅผ ์์ฑํด, ์น๋ทฐ์ ์์ฑ์์ ์ธ์๋ก ์ถ๊ฐํ ์๋ ์์ต๋๋ค.
WKWebViewConfiguration ๋ WKWebView ๊ฐ์ฒด์ ์์ฑ์ ์ค์ ํ๊ธฐ ์ํ ๊ฐ์ฒด๋ก, ์ปค์คํ URL scheme ์ ์ํ ํธ๋ค๋ฌ ์ง์ , ์ฟ ํค ๊ด๋ฆฌ, ์น ์ฝํ ์ธ ์ ์ฌ๋ฌ ์ค์ ๋ค์ ์ปค์คํฐ๋ง์ด์ง ํ ์ ์์ด์. ์คํ ๋ฆฌ๋ณด๋์ attributes inspector ์์ ์ค์ ํ ์ ์๋ ๊ฐ์ด์์
๐โ๏ธ Loading Web Content
์น ์ฝํ ์ธ ๋ฅผ ๋ก๋ฉํ๊ธฐ ์ํด์ ์ฌ๋ฌ๊ฐ์ง ๋ฉ์๋๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ณดํต URL ๋ก ๋ก๋ํ๋ ์ผ์ด ๋ง์ง ์์๊น ์ถ์ด์!
load ๋ฉ์๋ ์ธ์ reload, stopLoading ๋ฑ์ ๋ฉ์๋๋ ์ ๊ณต๋ฉ๋๋ค.
WKWebView ์ ๋ฉ์๋๋ก ๋ฏธ๋์ด ์ฌ์๊ด๋ จ, ์นด๋ฉ๋ผ์ ๋ง์ดํฌ ์ค์ ๊ด๋ จ, ํ์ด์ง๋ด ์ฝํ ์ธ ์ฐพ๊ธฐ, ์นํ์ด์ง๊ฐ Navigating, JavaScript ์คํ์ ์ํ ๋ฉ์๋๋ ์ ๊ณต๋ฉ๋๋ค. ํ์์ ๋ฐ๋ผ ์ฐพ์๋ณด์๋ฉด ๋ ๊ฒ ๊ฐ์์. WKNavigationDelegate, WKUIDelegate ์ ๋ํด์๋ ๋ค์๋ฒ์ ์ ๋ฆฌํ๋๋ก ํ๊ฒ ์ต๋๋ค! ๐ฅบ
๐ ๊ณต์ ๋ฌธ์ ์ฐธ๊ณ
'๐ iOS > UIKit' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[iOS/Swift] TextView - URL (ํ์ดํผ๋งํฌ)ํด๋ฆญํด ์น๋ทฐ ๋์์ฃผ๊ธฐ (0) | 2022.01.25 |
---|---|
[iOS] ๋ค์ด๋ฒ์ง๋ ์ฑ ์ฐ๋ - Place ID ๋ก ์ฑ ์ด๊ธฐ (2) | 2021.07.16 |
[iOS] FLO ์ฑ ๊ฐ๋ฐ ์ผ์ง #2. TableView ๋ก ๊ฐ์ฌ ํ๋ฉด ๊ฐ๋ฐํ๊ธฐ (0) | 2021.06.30 |
[iOS] FLO ์ฑ ๊ฐ๋ฐ ์ผ์ง #1. MVVM ํจํด๊ณผ Data Binding (0) | 2021.06.29 |
[iOS] MVC ํจํด (Model - View - Controller) (0) | 2021.06.18 |