추가 설정 / Troubleshooting

iOS WebView에서 광고 랜딩이 연결되지 않아요

iOS 앱의 WKWebView 안에서 WEB SDK를 사용하는 경우, 광고 클릭 시 랜딩 페이지가 열리지 않거나 아무 반응이 없는 현상이 발생할 수 있습니다.

이는 iOS의 WKWebView 보안 정책에 따라, JavaScript의 window.open() 함수가 제대로 동작하지 않기 때문입니다.

이 문제를 해결하려면, WKWebViewWKUIDelegate를 설정하고 createWebViewWith 메서드를 구현해야 합니다.

아래는 예시 코드입니다:

import WebKit

class YourWebViewController: UIViewController, WKUIDelegate {
  override func viewDidLoad() {
    super.viewDidLoad()

    let webConfig = WKWebViewConfiguration()
    let webView = WKWebView(frame: .zero, configuration: webConfig)
    webView.uiDelegate = self
    view.addSubview(webView)
  }

  // window.open() 대응 처리
  func webView(_ webView: WKWebView,
               createWebViewWith configuration: WKWebViewConfiguration,
               for navigationAction: WKNavigationAction,
               windowFeatures: WKWindowFeatures) -> WKWebView? {
    if navigationAction.targetFrame == nil {
      webView.load(navigationAction.request)
    }
    return nil
  }
}

💡 window.open() 호출 시 새 창을 띄우는 대신, 현재 웹뷰에서 해당 URL을 열도록 처리하는 방식입니다.

Last updated