Notice
Recent Posts
Recent Comments
Link
투케이2K
11. (TWOK/ERROR) [Android] 웹뷰 (webview) 로드 시 캐시 초기화 되지 않는 이슈 - cache, CookieManager, deleteDatabase 본문
투케이2K 에러관리
11. (TWOK/ERROR) [Android] 웹뷰 (webview) 로드 시 캐시 초기화 되지 않는 이슈 - cache, CookieManager, deleteDatabase
투케이2K 2022. 4. 9. 17:40[환경 설정 및 설명]
프로그램 : AndroidStudio
설 명 : 웹뷰 (webview) 로드 시 캐시 초기화 되지 않는 이슈 - cache, CookieManager, deleteDatabase
[에러 원인]
1. main_webview.clearCache(true); 설정 만으로는 캐시가 초기화되지 않는 이슈 발생
[해결 방법]
1. clearCache , CookieManager , deleteDatabase 를 통해서 추가 캐시 및 세션 삭제 수행 실시
// -----------------------------------------
// 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);
// -----------------------------------------
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments