Dev's/App

[Dev's] SwiftUI WebView에서 window.open()이 동작하지 않음

rookas89 2021. 11. 11. 18:15
728x90

처음엔 submit 시, id값이 안넘어간다고만 생각했음

새 창 자체는 열렸는데, 값이 안넘어갔다는 에러가 발생했었음

그래서 여러 방법을 시도하던 중, 아에 웹뷰 코드를 갈아 엎어버림

 

WebView의 Coordinator 클래스에 아래와 같은 함수를 추가하고

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

 

makeUIView에 옵션값에 내용을 추가 함

webView.configuration.preferences.javaScriptEnabled = true
webView.configuration.preferences.javaScritpCanOpenWindowsAutomatically = true

이렇게 수정하여 WebView에서 submit과 새창이 정상적으로 열리는건 확인했는데

window.open() 함수에는 문제가 있는것으로 보임

이건 https://gist.github.com/ElonPark/e26cd20ebb8c8d66b56a0b99449ca081

 

WKWebView에서 자바스크립트로 window.open(), window.close() 하는 경우 처리

WKWebView에서 자바스크립트로 window.open(), window.close() 하는 경우 처리 - createWebViewWith.swift

gist.github.com

참고해서 해결 할 예정

728x90