在iOS 8.4上清除WKWebView的Cookie

我正在构建一个使用单点登录的应用程序,用户可以登录.用户输入成功的ID和密码后,网页的某些方面会返回我的应用程序中存储的标题. WKWebView还设置了用户成功登录的cookie,这是我想要避免或撤消的.

我看到的不良行为是,如果我登录一个用户,一切顺利,然后我将其注销并重新登录,WKWebView认为用户仍然登录,并将它们带到不需要的URL.

在iOS 9中,减轻这一点是相当简单的:

let config = WKWebViewConfiguration()
config.websiteDataStore = WKWebsiteDataStore.nonPersistentDataStore()

let webView = WKWebView(frame: .zero,configuration: config)

然而在iOS 8.4中,确保每次用户加载单点登录网址时,Cookie都清晰,这一点比较复杂.

我尝试过在NSHTTPCookieStorage.sharedHTTPCookieStorage()中循环访问cookie的方法,并将其删除.不幸的是,Cookie计数为0.

我也尝试删除NSFileManager.defaultManager()中的/ Cookies目录.这也不行.

有一件事情是做了以下工作.虽然这种方法不允许我获得标题,因为登录后需要重定向才能发生,并且这种干扰(在iOS 9和8.4中)

req = NSMutableURLRequest(URL: url)
req?.HTTPShouldHandleCookies = false
let webView = WKWebView()
webView.loadRequest(req ?? NSURLRequest(URL: url))

我希望在我的观点的deinit中清除cookies,如果这是一个可能的解决方案,我的WKWebView.

解决方法

这可能是一个漫长的时间,但是在登录时,如何覆盖cookie接受策略来拒绝所有的Cookie?
NSHTTPCookieStorage.sharedHTTPCookieStorage().cookieAcceptPolicy = .Never

另一个想法是使用自定义的WKProcessPool子类(这不是真正的记录)手动管理cookie.我相信这是Firefox如何管理任何cookie问题.

相关文章

背景 前端时间产品经理决定使用百度统计,使得 工程B 中原统计sdk-友盟统计,需要被去除。之前尝试去除...
结论: alloc负责分配内存和创建对象对应的isa指针; init只是返回alloc生成的对象。 所以alloc后,多次...
更新 如果UI愿意把启动图切割成n份,按一定约束在launchscreen.storyboard中进行排版,启动图效果会更好...
最近在看一本书《Effective OC 2.0》,今天看到有个tip是OC适中循环各自优劣性,作者最终推荐此块循环。...
// // ViewController.m // paintCodeTestOC //gif // Created by LongMa on 2019/7/25. // #import &a...
背景介绍 一般情况下,出于省电、权限、合理性等因素考虑,给人的感觉是很多奇怪的需求安卓可以实现,但...