现在,WKWebView 实例将忽略任何默认网络存储(NSURLCache、NSHTTPCookieStorage、NSCredentialStorage)以及可用于自定义网络请求的标准网络类(NSURLProtocol 等)。
因此 WKWebView 实例的 cookie 没有存储在您的应用程序的标准 Cookie 存储中,因此仅使用标准 Cookie 存储的 NSURLSession/NSURLConnection 无法访问 WKWebView 的 cookie(这可能是您遇到的问题: “登录状态”很可能存储在 cookie 中,但 NSURLSession/NSURLConnection 不会看到 cookie)。
缓存、凭证等也是如此。WKWebView 有自己的私有存储,因此不能很好地与标准 Cocoa 网络类一起使用。
您也不能自定义请求(添加您自己的自定义 HTTP 标头,修改现有标头等),使用您自己的自定义 URL 方案等,因为 WKWebView 也不支持 NSURLProtocol。
所以现在 WKWebView 对于许多应用程序来说是相当无用的,因为它不参与 Cocoa 的标准网络 API。
我仍然希望 Apple 会在 iOS 8 发布之前改变这一点,因为否则 WKWebView 对许多应用程序将无用,我们可能会坚持使用 UIWebView 更长时间。
所以向苹果发送错误报告,让苹果知道这些问题很严重,需要修复。