// 다음과 같이 displayName을 이용하여 특정 데이터만 삭제.
WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in
WKWebsiteDataStore.default().removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(),
for: records.filter { $0.displayName.contains("mytest.com") },
completionHandler: {
print("\("delete website data")")
})
}
다음은 모든 캐시데이터 및 특정 도메인 쿠키 삭제
// 모든 캐시데이터 삭제
let cacheDataTypes : Set<String> = [WKWebsiteDataTypeDiskCache, WKWebsiteDataTypeMemoryCache]
let date = Date(timeIntervalSince1970: 0)
WKWebsiteDataStore.default().removeData(ofTypes: cacheDataTypes,
modifiedSince: date ,
completionHandler: {
print("delete cache data")
})
// 특정 도메인 쿠키만 삭제
let cookieDataType : Set<String> = [WKWebsiteDataTypeCookies]
WKWebsiteDataStore.default().fetchDataRecords(ofTypes: cookieDataType) { records in
WKWebsiteDataStore.default().removeData(ofTypes: cookieDataType,
for: records.filter { $0.displayName.contains("mytest.com") },
completionHandler: {
print("delete cookie data")
})
}
웹 저장 데이터 로그 출력
// 쿠키 정보 보기
WKWebsiteDataStore.default().httpCookieStore.getAllCookies { cookies in
for cookie in cookies {
print("cookie : \(cookie)")
}
}
/*
출력 로그 :
cookie : <NSHTTPCookie
version:1
name:JSESSIONID
value:43C2101193D26FDE7F2DB61D86E15B0E
expiresDate:'(null)'
created:'2021-09-17 00:06:31 +0000'
sessionOnly:TRUE
domain:www.mytest.com
partition:none
sameSite:none
path:/
isSecure:FALSE
isHTTPOnly: YES
path:"/" isSecure:FALSE isHTTPOnly: YES>
*/