Notice
Recent Posts
Recent Comments
Link
투케이2K
602. (ios/swift5) [간단 소스] WKNavigationDelegate 간단 설명 및 사용 옵션 정리 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------
- 언어 : Swift
- 개발 툴 : Xcode
- 기술 구분 : WKNavigationDelegate / 딜리게이트 / 웹뷰
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------
1. WKNavigationDelegate 은 웹뷰의 메인 프레임에서 탐색 변경 사항을 수락하거나 거부하고, 탐색 요청의 진행 상황을 추적하는 딜리게이트 대리자 입니다
2. WKNavigationDelegate 은 콘텐츠 내의 특정 링크에서 탐색을 제한할 수 있으며, 요청 진행 상황을 추적하고 오류 및 인증 문제에 응답하는 데 사용할 수도 있습니다
3. WKNavigationDelegate 사용 가능 및 지원 버전 :
>> 아이폰 OS
>> 아이패드OS
>> 맥 카탈리스트
>> 맥 OS
>> 비전OS
4. WKNavigationDelegate 탐색 요청 허용 또는 거부 관련 :
>> func webView(WKWebView, decidePolicyFor: WKNavigationAction, preferences: WKWebpagePreferences, decisionHandler: (WKNavigationActionPolicy, WKWebpagePreferences) -> Void) : 지정된 기본 설정 및 작업 정보에 따라 새 콘텐츠로 이동할 수 있는 권한을 대리인에게 요청합니다.
>> func webView(WKWebView, decidePolicyFor: WKNavigationAction, decisionHandler: (WKNavigationActionPolicy) -> Void) : 지정된 작업 정보를 기반으로 새 콘텐츠로 이동할 수 있는 권한을 대리인에게 요청합니다.
>> enum WKNavigationActionPolicy : 작업에서 웹 페이지 탐색을 허용할지 취소할지 여부를 나타내는 상수입니다.
>> func webView(WKWebView, decidePolicyFor: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) : 탐색 요청에 대한 응답이 알려진 후, 대리인에게 새 콘텐츠로 이동할 수 있는 권한을 요청합니다.
>> enum WKNavigationResponsePolicy : 응답에서 웹 페이지 탐색을 허용할지 취소할지 여부를 나타내는 상수입니다.
5. WKNavigationDelegate 요청의 로드 진행 상황 추적 관련 :
>> func webView(WKWebView, didStartProvisionalNavigation: WKNavigation!) : 메인 프레임에서 탐색이 시작되었음을 대리자에게 알립니다.
>> func webView(WKWebView, didReceiveServerRedirectForProvisionalNavigation: WKNavigation!) : 대리자에게 웹 뷰가 요청에 대한 서버 리디렉션을 받았음을 알립니다.
>> func webView(WKWebView, didCommit: WKNavigation!) : 딜리게이트에게 웹 뷰가 메인 프레임에 대한 콘텐츠를 수신하기 시작했음을 알립니다.
>> func webView(WKWebView, didFinish: WKNavigation!) : 대리인에게 탐색이 완료되었음을 알립니다.
6. WKNavigationDelegate 인증 문제 대응 관련 :
>> func webView(WKWebView, didReceive: URLAuthenticationChallenge, completionHandler: (URLSession.AuthChallengeDisposition, URLCredential?) -> Void) : 대리인에게 인증 문제에 응답하도록 요청합니다.
>> func webView(WKWebView, authenticationChallenge: URLAuthenticationChallenge, shouldAllowDeprecatedTLS: (Bool) -> Void) : TLS 의 더 이상 사용되지 않는 버전을 사용하는 연결을 계속할지 여부를 대리자에게 묻습니다.
7. WKNavigationDelegate 탐색 오류에 대한 대응 관련 :
>> func webView(WKWebView, didFail: WKNavigation!, withError: any Error) : 탐색 중에 오류가 발생했음을 대리인에게 알립니다.
>> func webView(WKWebView, didFailProvisionalNavigation: WKNavigation!, withError: any Error) : 대리인에게 초기 탐색 과정에서 오류가 발생했음을 알립니다.
>> func webViewWebContentProcessDidTerminate(WKWebView) : 대리자에게 웹 뷰의 콘텐츠 프로세스가 종료되었음을 알립니다.
8. WKNavigationDelegate 다운로드 진행 상황 처리 관련 :
>> func webView(WKWebView, navigationResponse: WKNavigationResponse, didBecome: WKDownload) : 대리인에게 탐색 응답이 다운로드로 바뀌었음을 알립니다.
>> func webView(WKWebView, navigationAction: WKNavigationAction, didBecome: WKDownload) : 대리인에게 탐색 동작이 다운로드로 바뀌었음을 알립니다.
9. 추가 참조 관련 :
>> class WKBackForwardList : 이전에 로드된 웹 페이지 목록을 관리하는 객체로, 웹 뷰가 앞뒤 탐색에 사용합니다.
>> class WKBackForwardListItem : 웹 뷰가 이전에 방문했던 웹 페이지의 표현입니다.
>> class WKNavigation : 웹페이지의 로딩 진행 상황을 추적하는 객체입니다.
>> class WKNavigationAction : 탐색을 발생시키는 동작에 대한 정보를 담고 있는 객체입니다.
>> class WKNavigationResponse : 탐색 요청에 대한 응답을 포함하고 있는 객체이며, 탐색 관련 정책 결정을 내리는 데 사용됩니다.
// --------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------
https://developer.apple.com/documentation/webkit/wknavigationdelegate
https://blog.naver.com/kkh0977/222686770495?trackingCode=blog_bloghome_searchlist
// --------------------------------------------------------------------------------------
반응형
'IOS' 카테고리의 다른 글
601. (ios/swift5) [간단 소스] CBCentralManager 간단 설명 및 사용 옵션 정리 (0) | 2024.12.01 |
---|---|
600. (ios/swift5) [간단 소스] UNUserNotificationCenter 간단 설명 및 사용 옵션 정리 (0) | 2024.12.01 |
599. (ios/swift5) [간단 소스] DispatchSemaphore 간단 설명 및 사용 옵션 정리 (0) | 2024.12.01 |
598. (ios/swift5) [간단 소스] ProcessInfo 간단 설명 및 사용 옵션 정리 (0) | 2024.12.01 |
597. (ios/swift5) [간단 소스] URLSession uploadTask 간단 설명 및 사용 옵션 정리 (0) | 2024.12.01 |
Comments