투케이2K

7. (TWOK/LOGIC) [모바일] 웹뷰 (webview) 사용 시 로딩 (loading) 속도 향상 및 디스크 캐시 사용 실시 본문

투케이2K 로직정리

7. (TWOK/LOGIC) [모바일] 웹뷰 (webview) 사용 시 로딩 (loading) 속도 향상 및 디스크 캐시 사용 실시

투케이2K 2022. 8. 26. 16:51

[로직 정리]

정리 로직 : MOBILE (ANDROID / IOS)

상태 : [모바일] 웹뷰 (webview) 사용 시 로딩 (loading) 속도 향상 및 디스크 캐시 사용 실시

 

[설 명]

[사전 설정]

1. 웹에서는 해시 값을 사용해 css 파일 명칭 지정

2. 웹에서는 해시 값을 사용해 js 파일 명칭 지정










[안드로이드]

1. 웹뷰 초기 설정에서 앱 캐시 사용 설정 지정

main_webview.getSettings().setAppCacheEnabled(true); // 앱 내부 캐시 사용 여부 설정
main_webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); // 웹뷰 캐시 모드 설정


2. 필요에 따라 모든 데이터를 디스크 캐시를 통해 사용하고 싶은 경우 추가 설정 실시

// [주석 처리]
// main_webview.clearCache(true); 










[IOS]

1. WKWebsiteDataStore.default().removeData 웹뷰 데이터 삭제 부분에서 디스크, 메모리 캐시는 제외 실시

        // [원하는 캐시 데이터만 골라서 삭제]
        let websiteDataTypes = NSSet(array:
                                            [
                                             //WKWebsiteDataTypeDiskCache, // [주석] 디스크 캐시
                                             //WKWebsiteDataTypeMemoryCache, // [주석] 메모리 캐시

                                             WKWebsiteDataTypeCookies, // 웹 쿠키,
                                             
                                             WKWebsiteDataTypeOfflineWebApplicationCache, // 앱 캐시
                                             WKWebsiteDataTypeWebSQLDatabases, // 웹 SQL 데이터 베이스
                                             WKWebsiteDataTypeIndexedDBDatabases // 데이터 베이스 정보
                                             
                                             //WKWebsiteDataTypeLocalStorage // [주석] 로컬 스토리지
                                             //WKWebsiteDataTypeSessionStorage // [주석] 세션 스토리지
                                            ])
        let date = NSDate(timeIntervalSince1970: 0)
        WKWebsiteDataStore.default().removeData(ofTypes: websiteDataTypes as! Set, modifiedSince: date as Date, completionHandler:{
            print("")
            print("===============================")
            print("[A_Main >> init_WebView() :: 웹뷰 초기 설정 값 정의 실시 및 웹뷰 로드 수행]")
            print("-------------------------------")
            print("type :: removeData")
            print("-------------------------------")
            print("로 직 :: 사전 캐시 및 세션 데이터 삭제 수행됨")
            print("===============================")
            print("")
        })

[결과 화면]


반응형
Comments