본문 바로가기
카테고리 없음

[안드로이드] 웹뷰의 쿠키값 동기화

by 마케팅하는개발자 2021. 7. 16.
반응형

안드로이드 웹뷰에서 접속한 페이지에서 로그인 또는 쿠키를 저장시 앱을 종료하고 다시 실행시

쿠키가 삭제되는 경우가 발생합니다. 이런 경우 아래와 같이 앱과 웹뷰 사이의 쿠키값 싱크를 해 주어야 합니다.

액티비티에 아래와 같이 추가합니다.

 

 

@Override
protected void onCreate(Bundle savedInstanceState) {

    .....

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        CookieSyncManager.createInstance(this);
    }
}

@Override
protected void onResume() {
    super.onResume();

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        CookieSyncManager.getInstance().startSync();
    }
}

@Override
protected void onPause() {
    super.onPause();

    if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
        CookieSyncManager.getInstance().stopSync();
    }
}

 

웹뷰를 생성할 때 아래와 같이 onPageFinished 이벤트에서 쿠키값을 싱크합니다.

webView.setWebViewClient(new WebViewClient() {
    @Override
    public void onPageFinished(WebView view, String url) {
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
            CookieSyncManager.getInstance().sync();
        } else {
            CookieManager.getInstance().flush();
        }
    }
}

 

위와 같이 처리하면 앱을 종료하고 난 후에도 쿠키값이 저장이 되어 있어서 앱을 재실행시 쿠키를

다시 사용가능합니다.

반응형

댓글