2022. 11. 25. 15:32ㆍiOS/iOS
웹뷰 구동원리에 대해 깊이 이해를 하고싶었습니다.
그래서 개발문서, 블로그 등을 활용하여 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)
- 핸들러에게 웹페이지가 스크립트 메시지를 보냈다고 알립니다.
'iOS > iOS' 카테고리의 다른 글
bannaviiOS) wkWebView 뽀개기(feat.evaluateJavaScript vs addUserScript) (0) | 2022.11.28 |
---|---|
bannaviiOS) wkWebView 뽀개기(feat.evaluateJavaScript vs WKScriptMessageHandler) (0) | 2022.11.28 |
bannaviiOS) wkWebView 뽀개기(feat. WKUserContentController) (0) | 2022.11.25 |
bannaviiOS) wkWebView 뽀개기(feat. WKWebViewConfiguration) (0) | 2022.11.24 |
bannaviiOS) wkWebView 뽀개기(feat. WKPreferences) (0) | 2022.11.24 |