WKWebsiteDataStore
Webkit ํ๋ ์์ํฌ์์ ์ ๊ณตํ๋ ์น ์ฌ์ดํธ ๋ฐ์ดํฐ ์ ์ฅ์
์ฟ ํค, ์บ์, ๋ก์ปฌ ์ ์ฅ์ ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๋ ๊ฐ์ฒด
WKWebView์ ํจ๊ป ๋์ํ๋ฉด์ ์น์ฌ์ดํธ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ฑฐ๋ ์ญ์ ํ๋ ๋ฐ ์ฌ์ฉ
WKWebsiteDataStore ์ฃผ์ ๊ธฐ๋ฅ
httpCookieStore: ์น์ฌ์ดํธ์ ์ฟ ํค๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ์ถ๊ฐ/์ญ์
default(): ๊ธฐ๋ณธ ๋ฐ์ดํฐ ์ ์ฅ์ (์ผ๋ฐ์ ์ธ ์น ๋ธ๋ผ์ฐ์ง)
nonPersistent(): ๋น ํ๋ฐ์ฑ ๋ฐ์ดํฐ ์ ์ฅ์ (์ธ์
์ด ๋๋๋ฉด ๋ฐ์ดํฐ๊ฐ ์ญ์ )
fetchDataRecords(offTypes:): ํน์ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ด
removeData(ofTypes:for:): ํน์ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์
์ฟ ํค ๊ฐ์ ธ์ค๊ธฐ (httpCookieStore.getAllCookies)
WKWebsiteDataStore.default().httpCookieStore.getAllCookies { cookies in
for cookie in cookies {
print("์ฟ ํค ์ด๋ฆ: \(cookie.name), ๊ฐ: \(cookie.value)")
}
}
getAllCookies()๋ฅผ ํธ์ถํ๋ฉด ์ ์ฅ๋ ๋ชจ๋ ์ฟ ํค๋ฅผ ๊ฐ์ ธ์์ ์ถ๋ ฅ
์ฟ ํค ์ถ๊ฐ (httpCookieStore.setCookie)
let cookie = HTTPCookie(properties: [
.domain: "example.com",
.path: "/",
.name: "user_token",
.value: "123456",
.secure: "TRUE",
.expires: NSDate(timeIntervalSinceNow: 3600) // 1์๊ฐ ํ ๋ง๋ฃ
])!
WKWebsiteDataStore.default().httpCookieStore.setCookie(cookie)
ํน์ ๋๋ฉ์ธ(example.com)์ user_token ์ฟ ํค ์ถ๊ฐ
1์๊ฐ(3600์ด) ํ ๋ง๋ฃ
ํน์ ์ฟ ํค ์ญ์ (httpCookieStore.delete)
func deleteCookie(_ name: String) {
WKWebsiteDataStore.default().httpCookieStore.getAllCookies { cookies in
for cookie in cookies {
if cookie.name == name {
WKWebsiteDataStore.default().httpCookieStore.delete(cookie)
}
}
}
}
getAllCookies()๋ก ์ฟ ํค๋ฅผ ๊ฐ์ ธ์์ ํน์ ์ด๋ฆ๊ณผ ์ผ์นํ๋ฉด ์ญ์
๋ชจ๋ ์ฟ ํค ์ญ์ (removeData)
WKWebsiteDataStore.default().fetchDataRecords(ofTypes: [WKWebsiteDataTypeCookies]) { records in
WKWebsiteDataStore.default().removeData(ofTypes: [WKWebsiteDataTypeCookies], for: records) {
print("๋ชจ๋ ์ฟ ํค ์ญ์ ์๋ฃ!")
}
}
์ ์ฅ๋ ๋ชจ๋ ์ฟ ํค ๋ฐ์ดํฐ๋ฅผ ์ผ๊ด ์ญ์
'๐ iOS > Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ ๊ทผ์ ์ด์ (0) | 2024.11.04 |
---|---|
Lazy์ weak์ ํจ๊ป ์ฌ์ฉํ ์ ์๋ ์ด์ (0) | 2024.11.04 |
UI๋ฅผ ๋ฉ์ธ์ค๋ ๋์์ ๊ตฌํํด์ผํ๋ ์ด์ (1) | 2024.11.04 |
Photos ํ๋ ์์ํฌ (0) | 2024.08.07 |
Photos ํ๋ ์์ํฌ ๊ณต์๋ฌธ์ ๋ฒ์ญ (0) | 2024.08.07 |