如何清除iOS应用程序中的safari缓存?

时间:2017-01-13 05:43:21

标签: ios swift safari google-signin

请不要标记为重复,因为我已经尝试了所有的事情,但没有工作,有些人帮助我。

我的应用正在登录Google,登录时我收到了以前所有已登录的帐户。如何删除这些帐户?

提前谢谢。

//MARK:- clear Cache
                URLCache.shared.removeAllCachedResponses()
                URLCache.shared.diskCapacity = 0
                URLCache.shared.memoryCapacity = 0
                self.deleteCoreData()

                GIDSignIn.sharedInstance().disconnect()
                GIDSignIn.sharedInstance().signOut()
                for cookie in HTTPCookieStorage.shared.cookies! {
                    HTTPCookieStorage.shared.deleteCookie(cookie)
                }

                // Removes cache for all responses
                URLCache.shared.removeAllCachedResponses()

抱歉,对于重复的问题,我尝试了上面的代码,但它不起作用。可以请任何人指导我在哪里错了? 再次感谢你。

2 个答案:

答案 0 :(得分:1)

对于Swift 3.0,请清除所有网址缓存和Cookie

URLCache.shared.removeAllCachedResponses()

if let cookies = HTTPCookieStorage.shared.cookies {
    for cookie in cookies {
        HTTPCookieStorage.shared.deleteCookie(cookie)
    }
}

答案 1 :(得分:0)

尝试删除与auth相关的特定cookie,例如:

var cookieProperties = [HTTPCookiePropertyKey:String]()
cookieProperties[.name] = "<cookie_name>"
cookieProperties[.domain] = "<domain>"
cookieProperties[.originURL] = "<origin_url>"
// <... etc ...>
if let cookie = HTTPCookie(properties: cookieProperties) {
    HTTPCookieStorage.shared.deleteCookie(cookie)
}

或者只删除所有Cookie,如果在您的情况下不是问题:

if let cookies = HTTPCookieStorage.shared.cookies {
    for cookie in cookies {
        HTTPCookieStorage.shared.deleteCookie(cookie)
    }
}