Javascript <-> Swift WKWebView 통신하는 법 (2022.09.07)
설명할 내용 2가지
1. JS -> Swift 메세지 전달 받기
2. Swift -> JS 데이터 전달(함수호출 하기)
Step 1. 웹뷰로 url 띄우기
Step 2. 메세지 핸들러 확인
이 부분이 중요함! 쉽게 말하면 JS에서 어떤 이벤트가 발생하면 full이나 back이란 이름을 메세지로 보내준다!
그걸 아래 메세지 핸들러로 처리해준다!
메세지 핸들러로 full이란 이름이 들어오면 앱에서 원하는 동작을 실행 할 수 있음.
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