[Swift] userContentController JSON 데이터 파싱하기
- 언어/스위프트
- 2023. 2. 11.
반응형
WKScriptMessageHandler 구현하기
자바스크립트에서 네이티브로 특정 메시지를 호출할때는 iOS 스위프트에서 WKScriptMessageHandler 프로토콜을 구현해줘야 합니다. 자바스크립트 메시지 핸들러를 구현하면 WKScriptMessage 타입의 message 객체를 파라미터로 전달 받을 수 있습니다. 해당 데이터는 body와 name으로 구현되어 있습니다. name은 보내는 쪽과 맞춰서 String 타입으로 구현되고 실제 사용될 데이터는 message.body에 담기게 됩니다.
하지만 약속된 데이터가 JSON일 경우 전달 받은 데이터를 디버깅해보면 문자열이 아닌 딕셔너리(NSFronzenDictionaryM) 타입이라는 것을 확인할 수 있습니다.
이 데이터를 파싱하기 위해서는 우선 다음과 같이 Json 데이터로 변환해야 합니다. message.body 데이터를 jsonData로 변환한 뒤에 jsonString을 만들어줍니다.
또한 데이터를 담기위한 Decodable을 구현한 struct 객체를 하나 구현합니다. 이 부분은 웹과 정의한 대로 처리해야 하는데 저 같은 경우는 function, param으로 구분해서 데이터를 정의했습니다.
마지막으로 JSONDecoder를 사용해서 Json Data를 파싱합니다. switch 구문을 만들어서 분기해줍니다. 만약 enum을 만들어서 정의하면 좀 더 깔끔할 수 있겠네요.
반응형
'언어 > 스위프트' 카테고리의 다른 글
[Swift] iOS 저전력(절전) 모드 확인하기 (2) | 2023.03.14 |
---|---|
[Swift] Date 객체에 1일(하루)을 추가해서 Date 객체 변환하기 (0) | 2023.03.11 |
[Swift] AVAudioPlayer iOS 오디오 wav 파일 재생하기 (0) | 2023.02.16 |
[Swift] 스위프트 랜덤(random) 난수 색상 값 만들기 (0) | 2022.09.30 |
[Swift] 스위프트 toString 구현하기 (0) | 2022.09.27 |