From 7842a61ce16907c0e035f10015e9ddbf820b0073 Mon Sep 17 00:00:00 2001 From: JH713 Date: Thu, 4 Apr 2024 20:48:43 +0900 Subject: [PATCH 1/2] =?UTF-8?q?feat:=20=EB=8F=99=EC=98=81=EC=83=81=20inlin?= =?UTF-8?q?e=20=EC=9E=AC=EC=83=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- iBox/Sources/Shared/WebViewPreloader.swift | 21 ++++------------- iBox/Sources/Web/WebView.swift | 26 ++++++---------------- 2 files changed, 11 insertions(+), 36 deletions(-) diff --git a/iBox/Sources/Shared/WebViewPreloader.swift b/iBox/Sources/Shared/WebViewPreloader.swift index 4f88167..7baf685 100644 --- a/iBox/Sources/Shared/WebViewPreloader.swift +++ b/iBox/Sources/Shared/WebViewPreloader.swift @@ -10,38 +10,25 @@ import WebKit class WebViewPreloader { static let shared = WebViewPreloader() - private var webView: WKWebView? private var favoriteView: (url: URL, webView: WKWebView)? private var defaultUrl = URL(string: "https://profile.intra.42.fr/")! private init() {} - func preload(url: URL) { - let webView = WKWebView() - webView.isOpaque = false - webView.load(URLRequest(url: url)) - self.webView = webView - } - func preloadFavoriteView(url: URL?) { - let webView = WKWebView() + let config = WKWebViewConfiguration() + config.allowsInlineMediaPlayback = true + + let webView = WKWebView(frame: .zero, configuration: config) webView.isOpaque = false webView.load(URLRequest(url: url ?? defaultUrl)) favoriteView = (url ?? defaultUrl, webView) } - func getWebView() -> WKWebView? { - return webView - } - func getFavoriteView() -> WKWebView? { return favoriteView?.webView } - func resetWebView() { - webView = nil - } - func resetFavoriteView() { guard let favoriteView else { return } favoriteView.webView.load(URLRequest(url: favoriteView.url)) diff --git a/iBox/Sources/Web/WebView.swift b/iBox/Sources/Web/WebView.swift index 463e896..da5ef4a 100644 --- a/iBox/Sources/Web/WebView.swift +++ b/iBox/Sources/Web/WebView.swift @@ -21,11 +21,9 @@ class WebView: UIView { } // MARK: - UI Components + - private let webView = WKWebView().then { - $0.isOpaque = false - $0.scrollView.contentInsetAdjustmentBehavior = .always - } + private let webView:WKWebView private let refreshControl = UIRefreshControl() @@ -38,7 +36,12 @@ class WebView: UIView { // MARK: - Initializer override init(frame: CGRect) { + let config = WKWebViewConfiguration() + config.allowsInlineMediaPlayback = true + + webView = WKWebView(frame: .zero, configuration: config) super.init(frame: frame) + setupProperty() setupHierarchy() setupLayout() @@ -107,19 +110,4 @@ extension WebView: WKNavigationDelegate { } } - // func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) { - // print("웹뷰 로딩 실패: \(error.localizedDescription)") - // } - // - // func webView(_ webView: WKWebView, didFailProvisionalNavigation navigation: WKNavigation!, withError error: Error) { - // print("웹뷰 프로비저널 네비게이션 실패: \(error.localizedDescription)") - // } - // - // func webView(_ webView: WKWebView, decidePolicyFor navigationAction: WKNavigationAction, decisionHandler: @escaping (WKNavigationActionPolicy) -> Void) { - // if let url = navigationAction.request.url { - // print("웹뷰가 리다이렉트 되는 URL: \(url.absoluteString)") - // } - // - // decisionHandler(.allow) - // } } From 259188e052759d14b50bb59f96af2289e22c68d6 Mon Sep 17 00:00:00 2001 From: JH713 Date: Thu, 4 Apr 2024 20:52:06 +0900 Subject: [PATCH 2/2] feat: webview opaque false --- iBox/Sources/Web/WebView.swift | 1 + 1 file changed, 1 insertion(+) diff --git a/iBox/Sources/Web/WebView.swift b/iBox/Sources/Web/WebView.swift index da5ef4a..22cbe7b 100644 --- a/iBox/Sources/Web/WebView.swift +++ b/iBox/Sources/Web/WebView.swift @@ -54,6 +54,7 @@ class WebView: UIView { deinit { progressObserver?.invalidate() webView.stopLoading() + webView.isOpaque = false webView.navigationDelegate = nil webView.scrollView.delegate = nil }