일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- PyQt5
- androidstudio
- Swift
- 라이브러리
- 개발
- alamofire
- Python
- graph
- PyQt
- ios
- charts
- modal
- button
- Xcode
- UIKit
- library
- ui
- 개발자
- Chart
- UIButton
- Chrats
- UITableView
- Apple
- kotlin
- 그래프
- Storyboard
- cocoapods
- TableView
- Android
- 어플리케이션
Archives
- Today
- Total
Jiwift
[iOS/Swift] 웹뷰 브릿지 삭제, userContentController 제거 | removeScriptMessageHandler... (두개의 WebKit과 브릿지,) 본문
iOS Dev/Swift
[iOS/Swift] 웹뷰 브릿지 삭제, userContentController 제거 | removeScriptMessageHandler... (두개의 WebKit과 브릿지,)
지위프트 2023. 6. 25. 19:13반응형
우선 브릿지 삭제 방법은 forName자리에 삭제하고 싶은 userContentController 입력
self.loginWKView.configuration.userContentController.removeScriptMessageHandler(forName: "bridge")
사실 이건 나만이 겪을 것 같은 상황이다.
다른분들은 이런 상황이 당연하게 없겠지만.. 혹시나 해서 기록
웹이 이미 개발이 완료된 상태였다. 그 와중에 나는 하나의 ViewController에서 두개의 Webkit을 사용해야했고, 브릿지 이름 또한 똑같은 두 화면이었다.
해보면 바로 알겠지만 userContentController는 같은 이름을 두개의 브릿지에 등록할 수 없다.
self.oneWk.configuration.userContentController.removeScriptMessageHandler(forName: "bridge")
self.twoWk.configuration.userContentController.removeScriptMessageHandler(forName: "bridge")
이렇게하면 Xcode에서 에러를 뱉어낸다.
그래서 두 화면이 교차되는 순간에 적용 가능한 로직으로 remove와 add를 두 Webkit 사이에서 계속 진행했다.
(로직은 서비스마다 다를태니.. 각자 앱 동작에 맞게 구현해야합니다.)
대부분 개발 환경에서는 removeScriptMessageHandler를 쓸일이 없을 것 같지만.. 누군가에게 도움이 되기를.
[iOS/Swift] WebKit, window.open을 통해서 새로운 탭 열기 feat.nice 본인 인증. window.close (tistory.com)
[iOS/Swift] 웹뷰 브릿지 등록, WebKit과 브릿지, userContentController, 데이터 전송 (tistory.com)
반응형