bannaviiOS) wkWebView 뽀개기(feat. WKScriptMessageHandler)

2022. 11. 25. 15:32iOS/iOS

728x90
반응형

웹뷰 구동원리에 대해 깊이 이해를 하고싶었습니다.

그래서 개발문서, 블로그 등을 활용하여 WKScriptMessageHandler에 대해 정리해보았습니다.

 

 

WKScriptMessageHandler

웹 페이지에서 실행되는 JavaScript 코드로부터 메시지를 수신하기 위한 인터페이스입니다.

 

 

 

- 앱이 웹뷰에서 JavaScript메시지에 응답할 방법이 필요한 경우 WKScriptMessageHandler 프로토콜을 채택해야 합니다.

- JavaScript코드가, 특별히 메시지 핸들러를 대상으로 하는 메시지를 보낼때, WebKit 핸들러의 userContentController(_:didReceive:) 메서드를 호출합니다.

- 위의 방법을 사용하여 응답을 구현해보세요. 예를 들어, 웹 콘텐츠 변경에 대한 응답으로 앱의 다른 부분을 업데이트 할 수 있습니다.

 

- JavaScript에서 메시지 핸들러 호출하려면 코드에서

window.webkit.messageHandlers.<messageHandlerName>.postMessage(<messageBody>)

함수를 호출합니다.

- WKUserContentController 객체에 메시지 핸들러 설치할 <messageHandlerName> 값을 지정합니다.

 

 

"JavaScript 다시 응답을 제공하려면 대신 WKScriptMessageHandlerWithReply 프로토콜을 사용하여 메시지 핸들러 구현 필."

 

 

1.

func userContentController(WKUserContentController, didReceive: WKScriptMessage)

- 핸들러에게 웹페이지가 스크립트 메시지를 보냈다고 알립니다.

 

 
2.

class WKScriptMessage

- 페이지에서 JavaScript 코드로 보낸 메시지를 캡슐화하는 객체입니다.

 

728x90
반응형