추가 설정 / Troubleshooting
iOS WebView에서 광고 랜딩이 연결되지 않아요
iOS 앱의 WKWebView
안에서 WEB SDK를 사용하는 경우,
광고 클릭 시 랜딩 페이지가 열리지 않거나 아무 반응이 없는 현상이 발생할 수 있습니다.
이는 iOS의 WKWebView 보안 정책에 따라,
JavaScript의 window.open()
함수가 제대로 동작하지 않기 때문입니다.
이 문제를 해결하려면, WKWebView
에 WKUIDelegate
를 설정하고
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