투케이2K

249. (AndroidStudio/android/java) 웹뷰 (webview) 강력 캐시 초기화 방법 - cache , CookieManager , deleteDatabase 본문

Android

249. (AndroidStudio/android/java) 웹뷰 (webview) 강력 캐시 초기화 방법 - cache , CookieManager , deleteDatabase

투케이2K 2022. 1. 11. 08:27

[개발 환경 설정]

개발 툴 : AndroidStudio

개발 언어 : java

 

[소스 코드]

            // -----------------------------------------
            // TODO [WebView 컴포넌트 매핑 설정]
            main_webview = (WebView)findViewById(R.id.main_webview);
            // -----------------------------------------


            // -----------------------------------------
            // TODO [웹뷰 쿠키 및 세션 관리를 위한 쿠키 매니저 선언]
            CookieManager cookieManager = CookieManager.getInstance();
            // -----------------------------------------


            // -----------------------------------------
            // TODO [웹뷰의 캐시를 초기화 실시 : 일반 적용 방법]
            try {
                main_webview.clearCache(true);
                main_webview.clearHistory();
                main_webview.clearView();
            }
            catch (Exception e){
                //e.printStackTrace();
            }
            // -----------------------------------------


            // -----------------------------------------
            ///*
            // TODO [웹뷰의 캐시를 초기화 실시 : 쿠키 매니저를 통한 캐시 제거]
            try {
                cookieManager.removeSessionCookies(new ValueCallback<Boolean>() {
                    @Override
                    public void onReceiveValue(Boolean aBoolean) {
                        Log.i("---","---");
                        Log.d("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> init_WebView() :: 사전 쿠키 및 세션 데이터 삭제]");
                        Log.i("","\n"+"[session :: "+String.valueOf(aBoolean)+"]");
                        Log.d("//===========//","================================================");
                        Log.i("---","---");
                    }
                });
                cookieManager.removeAllCookies(new ValueCallback() {
                    @Override
                    public void onReceiveValue(Object value) {
                        Log.i("---","---");
                        Log.d("//===========//","================================================");
                        Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> init_WebView() :: 사전 쿠키 및 세션 데이터 삭제]");
                        Log.i("","\n"+"[cookies :: "+String.valueOf(value)+"]");
                        Log.d("//===========//","================================================");
                        Log.i("---","---");
                    }
                });
                cookieManager.getInstance().flush();
            }
            catch (Exception e){
                //e.printStackTrace();
            }
            // */
            // -----------------------------------------


            // -----------------------------------------
            ///*
            // TODO [웹뷰의 캐시를 초기화 실시 : deleteDatebase 를 이용한 직접 제거]
            try {
                A_Main.this.deleteDatabase("webview.db");
                A_Main.this.deleteDatabase("webviewCache.db");

                Log.i("---","---");
                Log.d("//===========//","================================================");
                Log.i("","\n"+"["+String.valueOf(ACTIVITY_NAME)+" >> init_WebView() :: 사전 쿠키 및 세션 데이터 삭제]");
                Log.i("","\n"+"[로 직 :: 웹뷰 deleteDatabase 수행]");
                Log.d("//===========//","================================================");
                Log.i("---","---");
            }
            catch (Exception e){
                //e.printStackTrace();
            }
            // */
            // -----------------------------------------



            // -----------------------------------------
            // TODO [웹뷰 로드 수행 실시]
            main_webview.loadUrl(url);
            // -----------------------------------------
 

 

반응형
Comments