728x90
preferences.javaScriptCanOpenWindowsAutomatically
JavaScript 코드에서 window.open() 같은 함수를 호출했을 때 Swift에서 자동으로 새 창을 열 것인지의 여부를 결정.
기본적으로 false로 설정이 되어 있다.
true 로 설정이 되어도 실제 새 창이 열리게 하려면 WKUIDelegate 의 webView(_:createWebViewWith:for:windowFeatures:) 메서드를 구현해야 한다.
webView(_:createWebViewWith:for:windowFeatures:)
새 창을 열려고 시도할 때 호출되는 델리게이트 메서드
새 창을 열기 위해 이 메서드를 구현하지 않거나 nil 을 반환하면 새 창 열기 요청은 무시되고 차단된다.
새 창 허용시, 현재 웹뷰가 아닌 새 창을 열기위한 새로운 웹뷰가 필요하다.
func webView(_ webView: WKWebView,
createWebViewWith configuration: WKWebViewConfiguration,
for navigationAction: WKNavigationAction,
windowFeatures: WKWindowFeatures) -> WKWebView? {
let newWebView = WKWebView(frame: self.view.bounds,
configuration: configuration)
// 모달로 띄우기
present(newViewController, animated: true)
// 화면 전체를 덮응 새 페이지로 네비게이션 스택에 push 하여 띄우기
navigationController?.pushViewController(newViewController, animated: true)
return newWebView
}
WKNavigationAction ->
새 창을 열게 된 사용자 상호작용에 대한 정보(URL, 요청 타입 등)를 담고 있다.
WKWindowFeatures ->
JavaScript의 window.open() 함수에서 지정된 새 창의 크기, 위치 등 특성에 대한 정보
728x90
'iOS > swift' 카테고리의 다른 글
| webView - 파일 로드 (0) | 2025.11.27 |
|---|---|
| webView - 쿠키 (0) | 2025.11.14 |
| 디버그, 릴리즈 용 사용 값 구분하기 (1) | 2024.07.08 |
| 숫자 다루기 (0) | 2023.11.07 |
| attributedString (0) | 2022.12.26 |
댓글