Notice
Recent Posts
Recent Comments
Link
투케이2K
47. (TWOK/ERROR) [Ios] 웹뷰 (webview) 로드 시 이전 캐시 및 세션 데이터가 삭제 되지 않는 이슈 본문
투케이2K 에러관리
47. (TWOK/ERROR) [Ios] 웹뷰 (webview) 로드 시 이전 캐시 및 세션 데이터가 삭제 되지 않는 이슈
투케이2K 2022. 4. 11. 07:54[환경 설정 및 설명]
프로그램 : Xcode
설 명 : 웹뷰 (webview) 로드 시 이전 캐시 및 세션 데이터가 삭제 되지 않는 이슈
[에러 원인]
1. 웹뷰 (webview) 로드 시 이전 캐시 및 세션 데이터가 유지되어 기능이 정상 동작 하지 않는 문제
[해결 방법]
1. 웹뷰 (webview) 로드 시 사전 캐시 및 세션 데이터 삭제 > 웹뷰 로드 수행 실시
// -----------------------------------------
// [전체 방문 데이터 지우기]
/*WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), completionHandler: {
(records) -> Void in
for record in records{
WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {})
print("")
print("===============================")
print("[A_Main >> init_WebView() :: 웹뷰 초기 설정 값 정의 실시 및 웹뷰 로드 수행]")
print("type :: removeData")
print("로직 :: 사전 전체 방문 데이터 삭제됨")
print("===============================")
print("")
}
})*/
// -----------------------------------------
// [원하는 데이터만 골라서 삭제]
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("type :: removeData")
print("로 직 :: 사전 캐시 및 세션 데이터 삭제 수행됨")
print("===============================")
print("")
})
// -----------------------------------------
// [설치된 날짜 가져오는 코드]
let urlToDocumentsFolder: URL? = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).last
let installDate = try? FileManager.default.attributesOfItem(atPath: (urlToDocumentsFolder?.path)!)[.creationDate] as! Date
// [설치된 날짜부터 지금까지의 cookie all clear]
URLSession.shared.configuration.httpCookieStorage?.removeCookies(since: installDate!)
print("")
print("===============================")
print("[A_Main >> init_WebView() :: 웹뷰 초기 설정 값 정의 실시 및 웹뷰 로드 수행]")
print("type :: URLSession removeCookies")
print("앱 설치 일자 :: ", installDate ?? "")
print("로 직 :: 사전 캐시 및 세션 데이터 삭제 수행됨")
print("===============================")
print("")
// -----------------------------------------
// [웹 보기에 대한 쿠키, 디스크 및 메모리 캐시, 기타 유형의 데이터를 관리하는 개체]
self.javascriptConfig.websiteDataStore = WKWebsiteDataStore.default()
// -----------------------------------------
// [웹뷰 초기 설정 및 init 수행 실시]
// -----------------------------------------
반응형
'투케이2K 에러관리' 카테고리의 다른 글
Comments