Things take time

[Android] Webview 쿠키, 캐시, 히스토리 등 웹데이터 삭제 본문

Android(기능)

[Android] Webview 쿠키, 캐시, 히스토리 등 웹데이터 삭제

겸손할 겸 2017. 12. 20. 11:55

[코드]


                        webView.clearCache(true);
                        webView.clearHistory();
                        // 자동완성은 8.0부터는 내장되어 아래 함수 안먹음 
                        webView.clearFormData();

                        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
                            CookieSyncManager cookieSyncMngr=CookieSyncManager.createInstance(MainActivity.this);
                            cookieSyncMngr.startSync();
                            CookieManager cookieManager=CookieManager.getInstance();
                            cookieManager.removeAllCookie();
                            cookieManager.removeSessionCookie();
                            cookieSyncMngr.stopSync();
                            cookieSyncMngr.sync();
                        }else {
                            CookieManager cookieManager = CookieManager.getInstance();
                            cookieManager.removeAllCookies(new ValueCallback() {
                                @Override
                                public void onReceiveValue(Boolean value) {
                                    Log.d("onReceiveValue", value.toString());
                                }
                            });
                            cookieManager.getInstance().flush();
                        }

iOS의 경우에는 원하는 데이터 타입을 설정해서 하는 방법이었다면 안드로이드의 경우에는 위처럼 수행한다.

기본적인 캐시 및 히스토리는 윗 두 줄처럼하면 된다.


입력한 자동완성 값은 clearFormData()로 할 수있으나 오레오부터는 이 함수는 먹지 않는다.

https://developer.android.com/about/versions/oreo/android-8.0-changes.html?hl=ko


롤리팝(21)부터 지원하는 쿠키매니저는 이전 값들을 깨끗하게 지우는데 도움이 된다. 이전 버전은 쿠키싱크매니저를 사용한다.