728x90
xcode 콘솔창에서 JavaScript의 console.log 내용을 표시하는 extension을 작성했습니다.
아래 코드를 프로젝트 안에 입력한뒤 필요한 장소에서 webView.enableConsoleLog() 라는 함수를 호출해주면, JavaScript의 console.log의 내용이 xcode의 디버그 윈도우에 표시됩니다.
상세코드
import WebKit
/// adding "console.log" support
extension WKWebView: WKScriptMessageHandler {
/// enabling console.log
public func enableConsoleLog() {
// set message handler
configuration.userContentController.add(self, name: "logging")
// override console.log
let _override = WKUserScript(source: "var console = { log: function(msg){window.webkit.messageHandlers.logging.postMessage(msg) }};", injectionTime: .atDocumentStart, forMainFrameOnly: true)
configuration.userContentController.addUserScript(_override)
}
/// message handler
public func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
print("WebView: ", message.body)
}
}
extension code를 추가
필요한 부분에서 webView.enableConsoleLog()라는 함수를 호출하여 사용
디버그 윈도우에 WebView: console.log 내용이 출력되는 것을 확인할 수 있음
728x90
'iOS > swift' 카테고리의 다른 글
06. [iOS/swift] 개발자 등록없이 내 아이폰에 테스트앱 설치하기 (0) | 2021.06.07 |
---|---|
05. [iOS/swift] HTTP 접근 허용하도록 xcode 설정하기 (0) | 2021.06.04 |
03. [iOS/swift] WebKit library 추가하는 법 (0) | 2021.06.02 |
02. [iOS/swift] webview 예제 (0) | 2021.06.01 |
01. [iOS/swift] Hello World 예제 (0) | 2021.06.01 |