Notice
Recent Posts
Recent Comments
Link
투케이2K
355. (ios/swift5) Xcode 내에서 Web JavaScript 웹 자바스크립트 console.log 확인 실시 본문
[개발 환경 설정]
개발 툴 : XCODE
개발 언어 : SWIFT5
[소스 코드]
// -----------------------------------------------------------------------------------------
// MARK: - [Xcode : Swift 내에서 웹 자바스크립트 console.log 확인 방법]
// -----------------------------------------------------------------------------------------
// 필요 설정 : import WebKit
// -----------------------------------------------------------------------------------------
// 필요 설정 : WKScriptMessageHandler
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// MARK: - [전역 변수 선언]
// -----------------------------------------------------------------------------------------
private var main_webview: WKWebView? = nil // [동적으로 웹뷰 생성]
var javascriptController = WKUserContentController() // [자바스크립트 통신 사용]
let javascriptConfig = WKWebViewConfiguration() // [자바스크립트 통신 사용]
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// MARK: - [소스 코드] : [Console Log 브릿지 추가]
// -----------------------------------------------------------------------------------------
func addJavaScriptBridge(){
S_Log._D_(description: "자바스크립트 통신 브릿지 추가", data: [
"Bridge :: logHandler"
])
// -----------------------------------------
// [브릿지 경로 추가 : 웹 브라우저 console.log 확인]
// -----------------------------------------
let source = "function captureLog(msg) { window.webkit.messageHandlers.logHandler.postMessage(String(msg)); } window.console.log = captureLog;"
let script = WKUserScript(source: source, injectionTime: .atDocumentEnd, forMainFrameOnly: false)
self.javascriptController.add(self, name: "logHandler") // [console 로그 확인] : [브릿지 추가]
// -----------------------------------------
// -----------------------------------------
// [javascriptController 지정]
// -----------------------------------------
self.javascriptConfig.userContentController = self.javascriptController
self.javascriptConfig.userContentController.addUserScript(script) // [웹 console log 확인 스크립트 추가]
// -----------------------------------------
}
// -----------------------------------------------------------------------------------------
// -----------------------------------------------------------------------------------------
// MARK: - [소스 코드] : [브릿지 응답 데이터 확인] : [Console Log 출력]
// -----------------------------------------------------------------------------------------
@available(iOS 8.0, *)
func userContentController(_ userContentController: WKUserContentController, didReceive message: WKScriptMessage) {
// ---------------------------------------------------------
// MARK: [브릿지 분기 처리] : [웹 코드] window.webkit.messageHandlers.logHandler.postMessage("");
// ---------------------------------------------------------
// [웹 브라우저 콘솔 로그 확인 용도]
// ---------------------------------------------------------
if message.name == "logHandler" {
print("Web Js Console Log :: \(message.body)")
}
}
// -----------------------------------------------------------------------------------------
[결과 출력]
Web Js Console Log ::
Web Js Console Log :: =========================================
Web Js Console Log :: [window onload] : [start]
Web Js Console Log :: =========================================
Web Js Console Log ::
반응형
'IOS' 카테고리의 다른 글
Comments