투케이2K

118. (ios/swift) wkwebview 웹뷰 에러 상태 확인 및 응답 상태 코드 확인 - withError , WKNavigationResponse 본문

IOS

118. (ios/swift) wkwebview 웹뷰 에러 상태 확인 및 응답 상태 코드 확인 - withError , WKNavigationResponse

투케이2K 2022. 2. 9. 08:18

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT

 

[소스 코드]

    // MARK: - [웹뷰 로드 수행 에러 확인]
    func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        // -----------------------------------------
        let _nsError = (error as NSError).code
        let _errorUrl = String(describing: webView.url?.description ?? "")
        // -----------------------------------------
        print("")
        print("===============================")
        print("[A_Main >> didFail() :: 웹뷰 로드 수행 에러]")
        print("_errorUrl :: \(_errorUrl)")
        print("_errorCode :: \(_nsError)")
        print("===============================")
        print("")
    }







    // MARK: - [웹뷰 실시간 url status 상태 코드 감지 실시]
    func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse,
                 decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
        
        // -----------------------------------------
        // [핸들러 처리 실시]
        defer {
            decisionHandler(.allow)
        }
        var _url = ""
        // -----------------------------------------
        if let url = navigationResponse.response.url {
            _url = url.description
        }
        else {
            _url = ""
        }
        // -----------------------------------------
        // [응답 상태 값 확인 실시]
        if let response = navigationResponse.response as? HTTPURLResponse {
            print("")
            print("===============================")
            print("[A_Main >> WKNavigationResponse() :: 웹뷰 실시간 url status 상태 코드 감지]")
            print("url [주 소] :: \(_url)")
            print("statusCode [상태 코드] :: \(response.statusCode)")
            print("===============================")
            print("")
        }
        // -----------------------------------------
    }

반응형
Comments