清除webView cookie(Swift)

Swi*_*ier 6 cookies oauth webview swift

如何清除webView中少数主机的所有cookie?这个问题的方法不起作用.

我正在尝试使用vk.com oauth并且它没有用户注销方法,因此删除cookis是使其他用户可以登录的现有方法之一

答案如下

Swi*_*ier 10

我做到了

        let cookieJar = NSHTTPCookieStorage.sharedHTTPCookieStorage()

        for cookie in cookieJar.cookies! {
           // print(cookie.name+"="+cookie.value)
            cookieJar.deleteCookie(cookie)
        }
Run Code Online (Sandbox Code Playgroud)

斯威夫特4

func removeCookies(){
    let cookieJar = HTTPCookieStorage.shared

    for cookie in cookieJar.cookies! {
        cookieJar.deleteCookie(cookie)
    }
}
Run Code Online (Sandbox Code Playgroud)


Sye*_*med 10

以上对我来说都不起作用。使用以下内容:

  • 雨燕5
  • Xcode 12.4
  • 网络工具包

以下是对我有用的解决方案:

func removeCookies() {
    HTTPCookieStorage.shared.removeCookies(since: Date.distantPast)
    print("All cookies deleted")

    WKWebsiteDataStore.default().fetchDataRecords(ofTypes: WKWebsiteDataStore.allWebsiteDataTypes()) { records in
        records.forEach { record in
            WKWebsiteDataStore.default().removeData(ofTypes: record.dataTypes, for: [record], completionHandler: {})
            print("Cookie ::: \(record) deleted")
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Chr*_*ris 9

Swift 5 中的一个班轮

HTTPCookieStorage.shared.cookies?.forEach(HTTPCookieStorage.shared.deleteCookie)
Run Code Online (Sandbox Code Playgroud)


Исм*_*тов 5

迅速4

func removeCookies(){
    let cookie = HTTPCookie.self
    let cookieJar = HTTPCookieStorage.shared

    for cookie in cookieJar.cookies! {
        cookieJar.deleteCookie(cookie)
    }
}
Run Code Online (Sandbox Code Playgroud)