Notice
Recent Posts
Recent Comments
Link
투케이2K
48. (TWOK/ERROR) [Ios] 웹뷰 (webview) 내에서 페이지 이동 간 쿠키가 공유 되지 않는 이슈 본문
투케이2K 에러관리
48. (TWOK/ERROR) [Ios] 웹뷰 (webview) 내에서 페이지 이동 간 쿠키가 공유 되지 않는 이슈
투케이2K 2022. 4. 11. 08:04[환경 설정 및 설명]
프로그램 : Xcode
설 명 : 웹뷰 (webview) 내에서 페이지 이동 간 쿠키가 공유 되지 않는 이슈
[에러 원인]
1. 웹뷰 (webview) 로드 시 URLRequest.addValue 헤더 필드 쪽에서 쿠키 삽입 시 페이지 이동 간 쿠키 값이 공유 되지 않는 이슈
[해결 방법]
1. 웹뷰 (webview) 최초 로드 시 URLRequest.addValue 헤더 필드 쪽에서 쿠키 삽입
> 웹뷰 로드 완료 상태 100 프로가 되면
> 다시 webview.evaluateJavaScript 자바스크립트 데이터 전송 방식을 사용해 쿠키 직접 삽입 실시
> 웹뷰 리로드 수행 실시
[IOS]
1. 웹뷰 웹뷰 초기 설정 셋팅 수행 실시 및 로드 하기 (전) 웹뷰 헤더 쪽에 쿠키 삽입 , 웹뷰 로드 수행 실시
- 쿠키 추가 셋팅 위함 : 웹뷰 WKWebViewConfiguration.websiteDataStore 설정을 >> WKWebsiteDataStore.nonPersistent() 로 설정
- 헤더 쪽 쿠키 삽입 실시 : URLRequest.addValue("데이터", forHTTPHeaderField: "Cookie")
- 웹뷰 로드 실시 : webview.load(request)
2. 웹뷰 로드 완료 상태 100 프로가 되면 다시 webview.evaluateJavaScript 를 사용해 쿠키 스토리지에 쿠키 삽입 실시
- 웹뷰 로드 완료 상태 체크 : override func observeValue
- 쿠키 문자열 형태 만듦 : document.cookie='쿠키 스트링 데이터'
- 쿠키 문자열을 자바스크립트 브릿지를 사용해 삽입 실시 : webview.evaluateJavaScript("\(cookies)")
3. webview.evaluateJavaScript 자바스크립트 데이터 전송 성공 및 실패 상태에서 성공한 경우 웹뷰에 저장된 쿠키 목록 확인
- 웹뷰 저장된 쿠키 목록 확인 : webview.configuration.websiteDataStore.httpCookieStore.getAllCookies
4. 정상적으로 쿠키가 삽입되어 있는 경우 >> 다시 웹뷰 리로드 수행 실시
- 웹뷰 리로드 : self.main_webview!.reload()
5. decidePolicyFor 실시간 웹뷰 주소 변경 상태 체크 부분에서 allow 처리 및 정상적으로 쿠키를 가지고 페이지 이동 처리가 되는지 확인
- 웹뷰 저장된 쿠키 목록 확인 : webview.configuration.websiteDataStore.httpCookieStore.getAllCookies
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments