我试图在我的应用中使用新的WebView,但似乎 WKWebView
无法使用NSURLCache
,并且Manifest
请求不起作用,没有加载请求,也没有存储任何存储。
除了使用NSURLCache
和Manifest
外,使用WKWebView
而不是UIWebView
,一切似乎都更好地奏效了,所以我想知道是否有一些解决此问题的方法。
P.S。我已经尝试了私有API _setOfflineApplicationCacheIsEnabled:
,并且确实有效,但是使用非公共API的应用程序将被Apple拒绝...我现在没有想法。
现在,wkwebview实例将忽略任何默认网络存储(nsurlcache,nsurlcache,nshttpcookiestorage,nscredentialStorage),也可以使用标准网络类别来自定义网络请求(NSURLLPROTOTOCOL,等))。
因此,wkwebview实例的cookie不存储在您的应用程序的标准cookie存储中,因此,仅使用标准cookie存储的nsurlsession/nsurlConnection无法访问WKWebView的cookie(正是这可能是问题所在您有:"登录状态"很可能存储在cookie中,但是nsurlsession/nsurlconnection不会看到cookie)。
缓存,凭据等也是如此。WKWebView具有自己的私人储藏,因此与标准可可网络类别不佳。
您也无法自定义请求(添加您自己的自定义HTTP标头,修改现有标头等),使用您自己的自定义URL方案等,因为WKWebView也不支持NsurlProtocol。
。因此,现在WKWebView对于许多应用程序都没有用,因为它不参与可可的标准网络API。