WKWebView의 쿠키를 완전히 삭제할 수 없어 왠지 대화가 남아있어... 무서워

5092 단어 SwiftWKWebView
WKWebView로 로그인

쿠키 삭제

WKWebView 표시... 어?나머지는 메시지도 있고... 무서워.
나는 가까스로 발견하였다
https://github.com/jwfriese/FrequentFlyer/blob/50200c61b7502b03748f235cc02ae8d894ef7015/FrequentFlyer/HTTP/HTTPSessionUtils.swift
그 녀석은 살았다.이렇게 하면 더 이상 두려워하지 않게 된다.
그나저나 쿠키는 분리되지 않은 걸 삭제해🙅…완전히 삭제된 시스템인데...
import WebKit

if let cookies = HTTPCookieStorage.shared.cookies {
    for cookie in cookies {
        HTTPCookieStorage.shared.deleteCookie(cookie)
    }
}
잘 지운 물건🙆
import WebKit

URLSession.shared.reset {} //cookieやキャッシュのリセット
UserDefaults.standard.synchronize() //データの同期 いらない同期をあとで同期して変に値を残さないためな気がする。

let dataStore = WKWebsiteDataStore.default() //WKWebsiteに保存されている全ての情報の削除
dataStore.fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in
    dataStore.removeData(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes(), for: records, completionHandler: {})
}

그래도 안 사라지는 게 있어요.😱왜?


답안

https://qiita.com/ShingoFukuyama/items/eede79a284c3669846e9


위에 적힌 대로 쿠키 공유를 위해 WKProcessPool을 사용할 때 이것도 초기화해야 할 것 같다(·⇔8034;··)
초기화는 다음 extension을 쓰고 쿠키를 삭제할 때 부르는 것입니다.믿음직한 글씨는 아니지만, 어쨌든.
WKProcessPool.shared.reset()
extension WKProcessPool {
   static var shared = WKProcessPool()

   func reset(){
       WKProcessPool.shared = WKProcessPool()
   }
}
다양한 토크가 있을 수 있지만 githuburl을 올릴게요.
시정 등의 내용을 부드럽게 알려주면 기쁠 거예요.
githuburl

https://github.com/sachiko-kame/WKWebViewSample
보충:
github에 있는 페이스북은 어떻게 해요?하지만 (아직 아무도 듣지 못했다) 로그인 상태가 있다면 솔직히 말해도 된다.(・BS8034;・)


그리고 ios10에서 바디를 낼 수 없어 요청을 보내고 로드HTML로 표시해줬으면 좋겠는데 잘 안 돼서 로드HTML에 실제 하는 동작을 적고 그 HTML 버튼을 켰을 때 무단으로 눌렀다고 적었다.

마지막으로...


WKWebView는ios10에서bodynil입니다. 아무래도 번거로움이 많네요.그래도 좋은 점이 많을 것 같아서요.

좋은 웹페이지 즐겨찾기