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..22cbe7b 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() @@ -51,6 +54,7 @@ class WebView: UIView { deinit { progressObserver?.invalidate() webView.stopLoading() + webView.isOpaque = false webView.navigationDelegate = nil webView.scrollView.delegate = nil } @@ -107,19 +111,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) - // } }