2015-05-14 159 views
4

我尝试使用新的WebView在我的应用程序清单请求,但似乎 WKWebView不能NSURLCache工作,Manifest请求没有工作,没有请求被加载并没有储存。我该怎么做WKWebView

一切似乎更好的工作中使用的WKWebView代替UIWebView除了使用NSURLCacheManifest,所以我不知道是否有解决这个问题某些方面。

P.S.我试过Private API _setOfflineApplicationCacheIsEnabled:,它确实有效,但使用非公开API的应用程序将被苹果拒绝...我现在没有想法。

回答

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。

+0

我想我已经读过这个评论别的地方...无论如何,谢谢 – humphry

+1

我想这是与你的Q有关.. – Tanuj

+0

嗯...确实,但这是告诉我不使用wkwebview ...我想要解决这个问题 – humphry