我试图在我的应用中使用新的WebView,但似乎是这样
WKWebView
无法使用NSURLCache
,Manifest
请求无效,未加载任何请求,也未存储任何内容。
除了使用WKWebView
和UIWebView
之外,使用NSURLCache
代替Manifest
似乎所有内容都更有效,所以我想知道是否有一些方法可以解决这个问题。< / p>
P.S。我已尝试使用私有API _setOfflineApplicationCacheIsEnabled:
,但确实有效,但使用非公开API的应用将被苹果拒绝......我现在已经没想到了。
答案 0 :(得分:4)
目前,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。