WebView ์ฌ์ฉํ๊ธฐ
WKWebView (๊ณต์๋ฌธ์ ๋งํฌ)
์ธ์ฑ ๋ธ๋ผ์ฐ์ ์ ๊ฐ์ด ์ธํฐ๋ ํฐ๋ธ ์น ์ปจํ ์ธ ๋ฅผ ํ์ํ๋ ๊ฐ์ฒด
์ ์ธ
// iOS, iPadOS, ๋งฅ ์นดํ๋ฆฌ์คํธ
class WKWebView: UIView
๊ฐ์
WKWebkView๋ ์น ์ปจํ ์ธ ๋ฅผ ์ฑ์ ๋ด์ฅ์ํฌ ์ ์๋ ํ๋ซํผ ๊ธฐ๋ฐ View ์ด๋ค. WebView๋ ์์ ํ ์น ๋ธ๋ผ์ฐ์ง ๊ฒฝํ์ ์ง์ํ๊ณ HTML, CSS ๋ฐ JavaScript ์ฝํ ์ธ ๋ฅผ ํ์ํด์ค๋ค. WKWebView ํด๋์ค๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ WKWebView ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ๋ทฐ๋ก์จ ์ค์ ํ ๋ค์ ์น ์ปจํ ์ธ ๋ฅผ ๋ถ๋ฌ์ค๊ธฐ ์ํด ์์ฒญ์ ๋ณด๋ด์ผ ํ๋ค.
๐ก
์ค์ iOS 8.0, macOS 10.10 ์ด์์์๋ WKWebView๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
์น ๋ทฐ ์ด๊ธฐํ
- var configuration: WKWebViewConfiguration์น ๋ทฐ๋ฅผ ์ด๊ธฐํํ๊ธฐ ์ํ ์ค์ ์ ๋ณต์ฌ๋ณธ
- init(frame: CGRect, configuration: WKWebViewConfiguration) ์ง์ ๋ ํ๋ ์๊ณผ ์ค์ ์ผ๋ก ์ด๊ธฐํ๋ ์น ๋ทฐ๋ฅผ ๋ฐํํฉ๋๋ค.
๋ทฐ ์ ๋ณด ๊ฒ์ฌ
- var scrollView: UIScrollView ์น ๋ทฐ์ ์ฐ๊ฒฐ๋ ์คํฌ๋กค ๋ทฐ
- var title: String? ํ์ด์ง ์ ๋ชฉ
- var url: URL?ํ์ฑ URL
- var customUserAgent: String?์ปค์คํ User agent ๋ฌธ์์ด
- var serverTrust: SecTrust? ํ์ฌ ์ปค๋ฐ๋ ํ์์ ๋ํ SecTrustRef ๊ฐ์ฒด
Delegate ์ค์
- var navigationDelegate: WKNavigationDelegate?์น ๋ทฐ์ ๋ค๋น๊ฒ์ด์ delegate
- var uiDelegate: WKUIDelegate? ์น ๋ทฐ์ ์ ์ ์ธํฐํ์ด์ค delegate
์ปจํ ์ธ ๋ก๋ฉ
- var estimatedProgress: Doubleํ์ฌ ๋ค๋น๊ฒ์ด์ ์ ๋ก๋๋์ ์ถ์ ํฉ๋๋ค.
- var hasOnlySecureContent: Bool ํ์ด์ง์ ๋ชจ๋ ๋ฆฌ์์ค๊ฐ ์์ ํ๊ฒ ์ํธํ๋ ์ฐ๊ฒฐ์ ํตํด์ ๋ก๋๋ ๊ฒ์ธ์ง๋ฅผ ๋ํ๋ ๋๋ค.
- func loadHTMLString(String, baseURL: URL?) -> WKNavigation? ์นํ์ด์ง ๋ด์ฉ๊ณผ base URL์ ์ค์ ํฉ๋๋ค.
- var isLoading: Bool ๋ทฐ๊ฐ ํ์ฌ ์ปจํ ์ธ ๋ฅผ ๋ก๋ฉ ์ค์ธ์ง๋ฅผ ๋ํ๋ ๋๋ค.
- func reload() -> WKNavigation? ํ์ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํฉ๋๋ค.
- func reload(Any?) ํ์ฌ ํ์ด์ง๋ฅผ ์๋ก๊ณ ์นจํฉ๋๋ค.
- func reloadFromOrigin() -> WKNavigation? (๊ฐ๋ฅํ๋ค๋ฉด) ์บ์ ์ ํจ์ฑ ๊ฒ์ฌ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ์ข ๋จ๊ฐ ์ฌ๊ฒ์ฆ์ ์ํํ๊ณ ํ์ฌ ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์นจํฉ๋๋ค.
- func reloadFromOrigin(Any?)(๊ฐ๋ฅํ๋ค๋ฉด) ์บ์ ์ ํจ์ฑ ๊ฒ์ฌ ์กฐ๊ฑด์ ์ฌ์ฉํ์ฌ ์ข ๋จ๊ฐ ์ฌ๊ฒ์ฆ์ ์ํํ๊ณ ํ์ฌ ํ์ด์ง๋ฅผ ์๋ก ๊ณ ์นจํฉ๋๋ค.
- func stopLoading()ํ์ฌ ํ์ด์ง์ ๋ชจ๋ ๋ฆฌ์์ค ๋ก๋ฉ์ ์ค๋จํฉ๋๋ค.
- func stopLoading(Any?) ํ์ฌ ํ์ด์ง์ ๋ชจ๋ ๋ฆฌ์์ค ๋ก๋ฉ์ ์ค๋จํฉ๋๋ค.
- func load(Data, mimeType: String, characterEncodingName: String, baseURL: URL) -> WKNavigation? ์นํ์ด์ง ์ปจํ ์ธ ์ base URL์ ์ค์ ํฉ๋๋ค.
- func loadFileURL(URL, allowingReadAccessTo: URL) -> WKNavigation? ํ์ผ ์์คํ ์์ ์์ฒญ๋ ํ์ผ URL๋ก ์ด๋ํฉ๋๋ค.
์ปจํ ์ธ ์ค์ผ์ผ๋ง
- var allowsMagnification: Boolํ๋ ์ ์ค์ฒ๋ฅผ ํตํ ์น ๋ทฐ ํ๋ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
- var magnification: CGFloatThe factor by which the page content is currently scaled.
- func setMagnification(CGFloat, centeredAt: CGPoint)์ง์ ๋ ๊ฐ์ ๋ฐ๋ผ์ ํ์ด์ง ์ปจํ ์ธ ๋ฅผ ํ๋ํ๊ณ ์ค์ฌ์ ์ ๋ง์ถฅ๋๋ค.
Navigating
- var allowsBackForwardNavigationGestures: Bool์ํ ์ค์์ดํ๋ฅผ ํตํ ์ ํ ํ์ด์ง ์ด๋๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
- var backForwardList: WKBackForwardList ์น ๋ทฐ์ ์ ํ ๋ฆฌ์คํธ
- var canGoBack: Bool back-forward ๋ฆฌ์คํธ ์์ ์ด์ ํญ๋ชฉ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์ผ๋ก ์ด๋์ด ๊ฐ๋ฅํ์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
- var canGoForward: Bool back-forward ๋ฆฌ์คํธ ์์ ๋ค์ ํญ๋ชฉ์ด ์กด์ฌํ๋ ๊ฒฝ์ฐ ํด๋น ํญ๋ชฉ์ผ๋ก ์ด๋์ด ๊ฐ๋ฅํ์ง์ ๋ํ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
- var allowsLinkPreview: Bool ๋งํฌ๋ฅผ ๋๋ ์๋ ๋ฏธ๋ฆฌ๋ณด๊ธฐ์ ํ์ ์ฌ๋ถ๋ฅผ ๋ํ๋ ๋๋ค.
- func goBack() -> WKNavigation? back-forward ๋ฆฌ์คํธ์์ ์ด์ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
- func goBack(Any?) back-forward ๋ฆฌ์คํธ์์ ์ด์ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
- func goForward() -> WKNavigation? back-forward ๋ฆฌ์คํธ์์ ๋ค์ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
- func goForward(Any?) back-forward ๋ฆฌ์คํธ์์ ๋ค์ ํญ๋ชฉ์ผ๋ก ์ด๋ํฉ๋๋ค.
- func go(to: WKBackForwardListItem) -> WKNavigation? back-forward ๋ฆฌ์คํธ ์์ ํญ๋ชฉ์ผ๋ก ์ด๋ํ๊ณ ํ์ฌ ํญ๋ชฉ์ผ๋ก ์ค์ ํฉ๋๋ค.
- func load(URLRequest) -> WKNavigation? ์์ฒญ URL๋ก ์ด๋ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ์คํ
- func evaluateJavaScript(String, completionHandler: ((Any?, Error?) -> Void)?) ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ์์ด์ ํ๊ฐํฉ๋๋ค.
์คํฌ๋ฆฐ์ท ์บก์ฒ
- func takeSnapshot(with: WKSnapshotConfiguration?, completionHandler: (UIImage?, Error?) -> Void) ๋ทฐ์์ ๋ณด์ฌ์ง๊ณ ์๋ ๋ทฐํฌํธ์ ์คํฌ๋ฆฐ์ท์ ์ฐ์ต๋๋ค.
์ค์ต