如何使用WKWebView执行清单请求

时间:2015-05-14 05:44:41

标签: ios cache-manifest wkwebview

我试图在我的应用中使用新的WebView,但似乎是这样  WKWebView无法使用NSURLCacheManifest请求无效,未加载任何请求,也未存储任何内容。

除了使用WKWebViewUIWebView之外,使用NSURLCache代替Manifest似乎所有内容都更有效,所以我想知道是否有一些方法可以解决这个问题。< / p>

P.S。我已尝试使用私有API _setOfflineApplicationCacheIsEnabled:,但确实有效,但使用非公开API的应用将被苹果拒绝......我现在已经没想到了。

1 个答案:

答案 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。