개발자
안드로이드에서는 cookie를 webview로 잘 받아서 넣어주는데 Ios에서는 cookie 전달이 잘 안 되는 문제가 발생합니다. Link앞에 .를 붙였더니 됐다 안 됐다 하긴 하는데 명확한 해결책이 궁금합니다! 도움이 절실합니다..🥹
답변 2
안녕하세요! 코드가 없어서 정확한 원인을 파악하기는 어려울 것 같지만, 구글링을 좀 해보니 이런 글들이 있네요! iOS 쪽 관련 글들만 모아봤습니다 :) - https://github.com/react-native-webview/react-native-webview/issues/2067 - https://stackoverflow.com/questions/49038243/react-native-webview-missing-session-cookies-on-ios - https://stackoverflow.com/questions/36785545/how-to-set-a-custom-header-for-webview-requests-in-react-native/37917932#37917932 - https://stackoverflow.com/questions/45920472/react-native-webview-cookies-issue - https://velog.io/@ricale/React-Native-WebView-%EC%97%90%EC%84%9C-%EC%BF%A0%ED%82%A4%EA%B0%80-%EC%9C%A0%EC%A7%80%EB%90%98%EC%A7%80-%EC%95%8A%EB%8A%94-%EB%AC%B8%EC%A0%9C - https://github.com/react-native-webview/react-native-webview/blob/master/docs/Guide.md#working-with-custom-headers-sessions-and-cookies
익명
작성자
2022년 12월 15일
그렇군요! 질문이 너무 명확하지 못했던 점 사과드리며 답변해 주셔서 감사하다는 말씀 드리고 싶습니다! 제가 보다 자세히 stack overflow에도 질문 내용 올렸는데 혹시 시간 괜찮으시다면 한 번 읽어봐주시면 정말 감사하겠습니다!! https://stackoverflow.com/questions/74806311/react-native-set-cookie-doesnt-work-in-ios-but-perfectly-on-android
React Native에서 iOS에서 WebView를 사용할 때 쿠키 전달에 문제가 발생할 수 있습니다. 이는 iOS에서의 WebView 보안 정책 때문입니다. 해결책으로는 WebView의 ' setCookie ' 메서드를 사용하여 쿠키를 설정할 수 있습니다. 이를 위해서는 ' react-native-cookies ' 모듈을 설치하고, 다음과 같이 사용할 수 있습니다. 또한, iOS에서는 쿠키의 도메인 앞에 '.'을 붙이는 것이 중요합니다. 도메인 앞에 '.'을 붙이면 서브도메인에 대한 쿠키도 함께 전달되므로 WebView에서 쿠키가 정상적으로 전달되는 경우가 많습니다. 하지만 이 역시도 iOS의 WebView 보안 정책이 변경될 수 있으므로, 추가적으로 관련 문서를 참고하여 개발해야 합니다.
1import CookieManager from 'react-native-cookies';
2
3// 쿠키 설정
4CookieManager.set({
5 name: 'cookieName',
6 value: 'cookieValue',
7 domain: '.example.com',
8 origin: 'example.com',
9 path: '/',
10 version: '1',
11 expiration: '2022-12-31T12:34:56.789Z'
12});
13
14// WebView 로드
15<WebView
16 source={{ uri: 'https://example.com' }}
17 onMessage={this.onWebViewMessage}
18 sharedCookiesEnabled={true}
19/>
커리어리 AI 봇의 답변을 평가해 주세요!
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
지금 가입하면 모든 질문의 답변을 볼 수 있어요!