분명 서버에서 css나 문구를 바꾼 html을 반영 했는데 웹뷰에서는 이전 html을 불러오는 경우가 발생했다.
캐싱이 되어있어 해당 url은 캐싱 값을 가져오고 있었던 것이다..
WebKit 내 모든 캐시 데이터를 날릴 수 있는 방법이 있다.
다음 코드를 ViewWillAppear 이나 로직에 따라 사용하면 좋을 것 같다.
func deleteWebCash() {
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<String>, modifiedSince: date as Date, completionHandler:{ })
}
'Swift' 카테고리의 다른 글
[Swift] UITableView에서 scroll 에 따른 Header 부분 컨트롤 하기 (0) | 2023.01.31 |
---|---|
[Swift] if case let 은 언제 쓰는 것인가? (0) | 2023.01.03 |
[Swift] Alamofire 통신에서 캐시 사용 안하는 방법 (0) | 2022.11.25 |
[Swift] UIScrollView 내 UITextView 의 Cursor 로 focus scroll 하는 방법 (0) | 2022.11.17 |
[Swift] ScrollView 에서 Button Highlight Delay가 생길 때 (2) | 2022.11.11 |