투케이2K

604. (ios/swift5) [간단 소스] WKUIDelegate 간단 설명 및 사용 옵션 정리 본문

IOS

604. (ios/swift5) [간단 소스] WKUIDelegate 간단 설명 및 사용 옵션 정리

투케이2K 2024. 12. 3. 19:52

[개발 환경 설정]

개발 툴 : XCODE

개발 언어 : SWIFT5

 

[소스 코드]

 

// --------------------------------------------------------------------------------------
[개발 및 테스트 환경]
// --------------------------------------------------------------------------------------

- 언어 : Swift


- 개발 툴 : Xcode


- 기술 구분 : WKUIDelegate / 딜리게이트 (대리자) / 웹뷰

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설명 정리]
// --------------------------------------------------------------------------------------

1. WKUIDelegate 은 웹 페이지를 대신하여 네이티브에서 사용자 인터페이스 요소를 표현하는 방법입니다


2. WKUIDelegate 사용 가능 범위 : 

  >> iOS
  >> iPadOS
  >> Mac Catalyst
  >> macOS
  >> visionOS


3. WKUIDelegate 웹뷰 생성 및 닫기 관련 : 

  >> func webView(WKWebView, createWebViewWith: WKWebViewConfiguration, for: WKNavigationAction, windowFeatures: WKWindowFeatures) -> WKWebView? : 새로운 웹 보기를 만듭니다.
  >> func webViewDidClose(WKWebView) : DOM 창이 성공적으로 닫혔음을 앱에 알립니다.


4. WKUIDelegate UI 패널 표시 관련 : 

  >> func webView(WKWebView, runJavaScriptAlertPanelWithMessage: String, initiatedByFrame: WKFrameInfo, completionHandler: () -> Void) : JavaScript 경고 패널을 표시합니다.
  >> func webView(WKWebView, runJavaScriptConfirmPanelWithMessage: String, initiatedByFrame: WKFrameInfo, completionHandler: (Bool) -> Void) : JavaScript 확인 ​​패널을 표시합니다.
  >> func webView(WKWebView, runJavaScriptTextInputPanelWithPrompt: String, defaultText: String?, initiatedByFrame: WKFrameInfo, completionHandler: (String?) -> Void) : JavaScript 텍스트 입력 패널을 표시합니다.
  >> func webView(WKWebView, showLockdownModeFirstUseMessage: String, completionHandler: (WKDialogResult) -> Void) : 사용자 지정 잠금 모드 첫 사용 메시지를 표시합니다.
  >> enum WKDialogResult : 대리자 (딜리게이트) 가 사용자 지정 잠금 모드 첫 번째 사용 대화 상자를 표시하는 가능한 방법을 나열하는 열거형입니다.


5. WKUIDelegate 업로드 패널 표시 관련 : 

  >> func webView(WKWebView, runOpenPanelWith: WKOpenPanelParameters, initiatedByFrame: WKFrameInfo, completionHandler: ([URL]?) -> Void) : 파일 업로드 패널을 표시합니다.
  >> class WKOpenPanelParameters : 웹 콘텐츠의 파일 업로드 컨트롤에 대한 구성 세부 정보입니다.


6. WKUIDelegate 상황별 메뉴 표시 관련 : 

  >> func webView(WKWebView, contextMenuConfigurationForElement: WKContextMenuElementInfo, completionHandler: (UIContextMenuConfiguration?) -> Void) : 대리자에게 상황에 맞는 메뉴 상호작용이 시작되었음을 알립니다.
  >> func webView(WKWebView, contextMenuForElement: WKContextMenuElementInfo, willCommitWithAnimator: any UIContextMenuInteractionCommitAnimating) : 웹뷰가 상황에 맞는 메뉴를 표시하는 데 사용하는 애니메이터 개체를 대리자에게 제공합니다.
  >> func webView(WKWebView, contextMenuWillPresentForElement: WKContextMenuElementInfo) : 지정된 요소에 대한 상황에 맞는 메뉴가 웹뷰에 표시될 예정임을 대리자에게 알려줍니다.
  >> func webView(WKWebView, contextMenuDidEndForElement: WKContextMenuElementInfo) : 지정된 요소에 대한 상황에 맞는 메뉴가 웹 뷰에서 닫혔음을 대리자에게 알립니다.
  >> class UIContextMenuConfiguration : 상황에 맞는 메뉴에 대한 구성 세부 정보를 포함하는 객체입니다.


7. WKUIDelegate 편집 메뉴 표시 관련 : 

  >> func webView(WKWebView, willDismissEditMenuWithAnimator: any UIEditMenuInteractionAnimating) : 위임자에게 웹 뷰에서 편집 메뉴를 닫을 예정임을 알립니다.
  >> func webView(WKWebView, willPresentEditMenuWithAnimator: any UIEditMenuInteractionAnimating) : 위임자에게 웹 뷰가 편집 메뉴를 표시하려고 한다는 것을 알려줍니다.


8. WKUIDelegate 권한 요청 관련 : 

  >> func webView(WKWebView, requestDeviceOrientationAndMotionPermissionFor: WKSecurityOrigin, initiatedByFrame: WKFrameInfo, decisionHandler: (WKPermissionDecision) -> Void) : 보안 원본 개체가 설명하는 웹 리소스가 장치의 방향 및 동작에 액세스할 수 있는지 여부를 결정합니다.
  >> func webView(WKWebView, requestMediaCapturePermissionFor: WKSecurityOrigin, initiatedByFrame: WKFrameInfo, type: WKMediaCaptureType, decisionHandler: (WKPermissionDecision) -> Void) : 보안 원본 개체가 설명하는 웹 리소스가 장치의 마이크 오디오 및 카메라 비디오에 액세스할 수 있는지 여부를 결정합니다.
  >> enum WKPermissionDecision : 장치 리소스 액세스에 대한 가능한 권한 결정의 열거형입니다.
  >> enum WKMediaCaptureType : 오디오, 비디오 또는 둘 다를 캡처할 수 있는 미디어 장치 유형을 나열한 열거형입니다.

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

https://developer.apple.com/documentation/webkit/wkuidelegate

https://blog.naver.com/kkh0977/222686770495?trackingCode=blog_bloghome_searchlist

// --------------------------------------------------------------------------------------

 

반응형
Comments