티스토리 뷰

iOS

iOS ) WKWebView에서 loading indicator처리

Zedd0202 2017. 12. 11. 19:33
반응형

 <iOS ) webView 사용시 참고하면 좋은 !! - webView 로딩 indicator보여주기>글을 썼었는데요,



deprecate가 그렇게나 된다고 된다고 했던 WebView가 드디어 deprecate됐습니다..Xcode 9 에서요 :) deprecate된지는 꽤 됐지만 (Xcode 9이 나온지는 꽤 됐지만) ...글을 써보려고 합니다.


UIWebViewDelegate는 이제 못쓰냐?

네.. deprecate되었으니 안쓰는게 맞겠죠?

그 전에!! UIWebView와 WKWebView의 차이점이 궁금해서 찾아봤습니다. 궁금하시면 한번 보세요 XD <UIWebView와 WKWebView의 차이>


자, UIWebViewDelegate대신, WKNavigationDelegate를 쓰면 된답니다 XD

WKNavigationDelegate에는 다양한 메소드들이 준비되어 있어요. 

심심하니까 하나씩 살펴봅시다. 

먼저, WebKit을 import해주셔야 합니다!!!!



Initiating the Navigation(탐색 시작하기)



optional func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)

Web View에서 웹 컨텐츠를 받기 시작할 때 호출됩니다.

optional func webView(_ webView: WKWebView, 
didStartProvisionalNavigation navigation: WKNavigation!)

웹 콘텐츠가 Web View로 로드되기 시작할 때 호출됩니다.





Responding to Server Actions(서버 작업에 응답)

optional func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)


Web View에서 웹 콘텐츠를 받기 시작할 때 호출됩니다.

optional func webView(_ webView: WKWebView, 
didReceiveServerRedirectForProvisionalNavigation navigation: WKNavigation!) 

Web View가 서버 리디렉션을 수신하면 호출됩니다.





Authentication Challenges(인증 문제)

optional func webView(_ webView: WKWebView, 
           didReceive challenge: URLAuthenticationChallenge, 
    completionHandler: @escaping (URLSession.AuthChallengeDisposition, URLCredential?) -> Void

Web View가 인증 요청에 응답해야 할 때 호출됩니다.





Reacting to Errors(에러에 반응하기)


optional func webView(_ webView: WKWebView, 
              didFail navigation: WKNavigation!, 
            withError error: Error)

탐색 중에 에러가 발생하면 호출됩니다.

optional func webView(_ webView: WKWebView, 
didFailProvisionalNavigation navigation: WKNavigation!, 
            withError error: Error

Web View에서 콘텐츠를 로드하는 중에 오류가 발생하면 호출됩니다.








Tracking Load Progress(로드 과정 추적)

optional func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)

탐색 완료되면 호출됩니다.

optional func webViewWebContentProcessDidTerminate(_ webView: WKWebView

Web View의 웹 콘텐츠 프로세스가 종료 될 때 호출됩니다.




Permitting Navigation(탐색 허용)

optional func webView(_ webView: WKWebView, 
      decidePolicyFor navigationAction: WKNavigationAction, 
      decisionHandler: @escaping (WKNavigationActionPolicy) -> Void)

탐색을 허용할지 또는 취소할지 여부를 결정합니다.


optional func webView(_ webView: WKWebView, 
      decidePolicyFor navigationResponse: WKNavigationResponse, 
      decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void)

응답이 알려진 후 탐색을 허용할지 아니면 취소할지 결정합니다.




오 그렇다면 indicator 작업은..


이렇게 해주면 잘 될 것 같네요 :)

가장 중요한 대리자 위임도 잊지마세요!!!


  1. webView.navigationDelegate = self




간단한거지만 ㅎㅎ..UIWebView deprecate기념 ~.~

도움이 되었으면 좋겠습니다 XD

반응형