---
title: WKWebView
description: 'WKWebView를 사용하여 iOS에서 비대면 카드 검증 캡처 경험을 구현하는 방법: 뷰 열기, 닫는 시점 제어, 필요한 권한.'
canonical: https://developer.unico.io/ko/dual-api/developers/regional-solutions/card-not-present-verification/integration/controlling-the-experience/mobile/ios/wkwebview
locale: ko
generated_by: markdown-export
---

iOS 사용 시나리오의 경우, WKWebView를 사용하는 것이 권장되는 방법 중 하나입니다.

거래를 생성하고 거래 링크를 얻은 후, 다음과 같은 구현이 권장됩니다:

- 비대면 카드 검증이 포함된 일반적인 흐름에서, API를 통해 생성된 링크로 WKWebView를 엽니다;
- 앱에 필요한 대로 이 열기 동작을 커스터마이징할 수 있습니다;
- URL이 변경되었는지(`redirectUrl`로) 감지한 다음 WKWebView를 닫습니다.

WKWebView를 여는 것은 매우 간단합니다:

```swift
import UIKit
import WebKit
import SafariServices

var webView: WKWebView!

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view.
    self.view.backgroundColor = .white
}

@IBAction func open(_ sender: Any) {
    createWKWebViewFull()
}

func createWKWebViewFull() {
    webView = WKWebView(frame: self.view.bounds, configuration: getWKWebViewConfiguration())
    webView.navigationDelegate = self
    view.addSubview(webView)
    self.loadUrl()
}

func loadUrl() {
    if let url = URL(string:"<URL_TO_LOAD>") {
        webView.load(URLRequest(url: url))
        webView.allowsBackForwardNavigationGestures = true
    }
}

private func getWKWebViewConfiguration() -> WKWebViewConfiguration {
    let config = WKWebViewConfiguration()
    config.allowsInlineMediaPlayback = true
    config.mediaTypesRequiringUserActionForPlayback = []

    return config
}
```

WKWebView를 언제 닫을지 제어하려면 다음과 같이 할 수 있습니다:

```swift
func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
    if let currentURL = webView.url {
        print("URL changed to: \(currentURL.absoluteString)")
        if currentURL.absoluteString == "<URL_TO_OBSERVER>" {
            closeWebView()
        }
    }
}

@objc func closeWebView() {
    DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) {
        self.webView.removeFromSuperview()
    }
}
```

:::note
올바르게 작동하려면 다음과 같은 몇 가지 권한이 필요합니다:
- 카메라
- 위치 정보
:::

자세한 내용은 공식 [WKWebView 문서](https://developer.apple.com/documentation/webkit/wkwebview)를 참고하는 것을 권장합니다.