ChamomileGuides 3.0.4 Help

쿠키 공유 관리 가이드(AOS)

쿠키 설정

쿠키, 캐시 초기화 -> 쿠키 매니저 생성 -> 쿠키 설정 -> 웹뷰 로드 완료 후 쿠키가 포함 되었는지 확인

  1. 쿠키, 캐시 초기화
    앱 초기 실행시 쿠키와 캐시를 초기화(VersionCheckModule.clearWeb), 파라미터로 웹뷰 인스턴스를 삽입

    file

  2. 쿠키 설정
    쿠키 매니저 생성 및 쿠키 모드 설정(VersionCheckModule.setCookieMode), 파라미터로 웹뷰 인스턴스와 서드 파티 쿠키 설정 유무를 삽입. 서드 파티 쿠키에 대한 설명은 아래 'Webview PG 결제 이슈'를 참고

    file

  3. 쿠키 삽입
    쿠키 삽입(VersionCheckModule.setCookie), 파라미터로 url, key, value를 입력.

    file

  4. 쿠키 확인
    쿠키 확인(VersionCheckModule.getCookie), 파라미터로 key(웹뷰 url)를 입력한다. 아래 예시는 캐모마일 플레이그라운드를 url로 입력하였고, deviceId와 appId를 넣었다.

    file

캐시 설정

VersionCheckModule.setCacheMode(flexWebView, cacheMode)를 통하여 캐시모드를 설정해준다.

캐시모드에는 총 4가지가 있고, 필요한 캐시 모드를 cacheMode 변수에 설정하여 파라미터로 넘겨준다.

// 캐시 모드 설정 // LOAD_CACHE_ONLY - 캐시만 사용하여 페이지를 로드 // LOAD_CACHE_ELSE_NETWORK - 캐시로 먼저 로드하고 나머지를 네트워크로 로드 // LOAD_DEFAULT - 캐시를 사용하지만, 서버에서 갱신된 내용이 있다면 불러옴 // LOAD_NO_CACHE - 항상 네트워크만 사용하여 페이지를 로드 val cacheMode = "LOAD_CACHE_ELSE_NETWORK" VersionCheckModule.setCacheMode(flexWebView, cacheMode) // 브라우저 캐시 허용
file

네이티브에서 로그인을 구현하는 경우 쿠키설정

100% 웹앱이라면 로그인 시, 세션 문제가 발생하지 않는다. (Native에서는 웹뷰만 호출해주고, 나머지는 Web에서 처리 하면 되기때문에) 로그인은 Native에서 하고 쿠키,세션을 가지고 웹뷰로 넘어가서 로그인을 유지하는 하이브리드 앱이라면 아래와 같은 이유로 문제가 발생한다. (1) 세션은 IP단위로 유지되기 때문에, Wifi 변경으로 IP가 변경 되면 세션이 풀린다. (2) 웹뷰 내부에서는 세션을 갖고 있더라도, API 호출시 세션 정보가 없다.

이와 같은 문제로 인해, Native에서는 로그인이 된걸로 유지가 되지만, 세션정보를 이용해야하는 웹에서는 세션정보가 없는 문제가 발생한다.

따라서 네이티브에서 로그인이 되어있다면, 웹 또한 세션을 생성해줘야 한다. 로그인의 기준점은 Native App이 되고, CookieManager를 통해 쿠키를 공유 해준다. Native에서 로그인이 되어있을때, Web에 세션을 생성해주는 절차는 다음과 같다.

(1)api를 통해 세션을 확인

(2)세션이 있다면 세선을 활용하고, 세션이 없다면 세션 생성용 api를 통해 로그인처리

(3)CookieManager로 세션id를 넘겨주고, 세션id를 활용하여 웹뷰 로드

file

Webview PG 결제 이슈

PG결제 시, 카드 결제창으로 이동하기 위해 필요한 외부 앱(ISP 앱, 카드사별 앱카드)을 연동 할때, 특정 카드사 앱으로 넘어가지않는 경우가 있다. 이에 대한 해결책으로 서드파티 쿠키를 허용해줘야 한다. Android 5.0부터 WebView Security 부분이 강화되면서 Third party cookie를 webview에서 block 시키게 되었다. Android 5.0 이전 버전에서는 setAcceptCookie 매서드만으로 서드파티 쿠키를 포함한 모든 쿠키가 허용이 되지만, Android 5.0 이후 버전에서는 setAcceptThirdPartyCookies 매서드를 통해 별도로 서드파티 쿠키를 허용해줘야 한다.

  1. 서드 파티 쿠키 종류

    • 퍼스트파티 쿠키 (First-Party Cookies) 사용자가 방문하고 있는 웹사이트의 도메인에서 설정하고 접근하는 쿠키. 주로 사용자 인증, 사용자 환경 설정 저장, 세션 유지, 웹사이트 성능 분석 등 웹사이트의 기본 기능을 지원

    • 서드파티 쿠키 (Third-Party Cookies) 사용자가 방문하고 있는 웹사이트(퍼스트 파티)외 다른 도메인에서 설정하고 접근하는 쿠키. 주로 광고, 트래킹, 소셜 미디어 통합 등 사용자의 온라인 활동을 추적하여 맞춤형 광고를 제공하는 데 사용.

  2. 쿠키 설정 매서드의 종류

    • setAcceptCookie WebView가 쿠키를 전송하고 수신할지 여부를 전반적으로 설정. 하지만 Android 5.0 (Lollipop) 이상에서는 서드파티 쿠키가 기본적으로 차단되기 때문에, 서드파티 쿠키를 허용하기 위해서는 별도로 설정이 필요하다

    • acceptCookie 현재 WebView 인스턴스의 쿠키 허용 상태를 확인할 때 사용

    • setAcceptThirdPartyCookies WebView가 서드 파티 쿠키를 설정할지를 결정 Android 5.0 (Lollipop) 이상에서는 서드파티 쿠키가 기본적으로 차단되기 때문에, 이 메서드를 사용해 서드파티 쿠키를 명시적으로 허용해야 한다.

    • acceptThirdPartyCookies 현재 WebView 인스턴스의 서드파티 쿠키 허용 상태를 확인할 때 사용

Last modified: 21 4월 2025