Javascript <-> Swift WKWebView 통신

김민종·2022년 9월 7일
0

Swift 에러

목록 보기
3/3

Javascript <-> Swift WKWebView 통신하는 법 (2022.09.07)

설명할 내용 2가지
1. JS -> Swift 메세지 전달 받기
2. Swift -> JS 데이터 전달(함수호출 하기)

  1. JS -> Swift 메세지 전달 받기

Step 1. 웹뷰로 url 띄우기

Step 2. 메세지 핸들러 확인

이 부분이 중요함! 쉽게 말하면 JS에서 어떤 이벤트가 발생하면 full이나 back이란 이름을 메세지로 보내준다!
그걸 아래 메세지 핸들러로 처리해준다!

메세지 핸들러로 full이란 이름이 들어오면 앱에서 원하는 동작을 실행 할 수 있음.


  1. Swift -> JS 데이터 전달(함수호출 하기)

Step 1. String -> Json으로 변환해주기

Step 2. 만든 Json형식 Javascript함수로 호출 및 보내주기

여기서 제일 에러 많이 남..
그냥 "helloWorld('(self.jsonString)')"이런식으로 보내라고 했는데 이러면 안됬음. 꼭 "javascript:window.NativeInterface.helloWorld('(self.jsonString)')"식으로 보내줘야됨

https://github.com/Kimminjong94/javascriptTest
위 사진들의 전체 코드입니다.


참고 자료
메세지 받을 때 도움이 되었던 자료
https://swieeft.github.io/2020/07/29/WKWebViewBridge.html
데이터 보낼 때 참고한 자료
https://gradler.tistory.com/33

위 두 블로그를 메인으로 했고 기타 참고 자료
https://velog.io/@gnwjd309/iOS-WKWebView

https://stackoverflow.com/questions/53225980/ios-swift-how-to-pass-json-string-and-array-or-dictionary-to-javascript-from-uiw

https://stackoverflow.com/questions/37820666/how-can-i-send-data-from-swift-to-javascript-and-display-them-in-my-web-view

https://stackoverflow.com/questions/48525933/i-want-to-pass-json-data-to-javascript-function-related-to-web-view-but-i-am-un

https://developer.apple.com/forums/thread/45643

profile
신입 ios개발자입니다!

0개의 댓글