在iPhone和iPhone上使用UIWebView进行私密浏览iPad的

时间:2010-06-14 10:58:58

标签: iphone ipad uiwebview

现有应用如何实现此功能???

我是否可以仅为某些网站存储Cookie,并且仅在我的应用内存储?据我所知,Web视图以共享模式存储cookie ...因此它们与Safari以及使用UIWebView的其他应用程序共享。

2 个答案:

答案 0 :(得分:5)

根据NSHTTPCookieStorage docs,Cookie不会在应用程序之间共享:

  

iPhone OS注意:Cookie不会共享   在iPhone OS中的应用程序之间。

因此,默认情况下它们似乎应该是“私密的”。您还可以使用[NSHTTPCookieStorage sharedHTTPCookieStorage]对象将cookie存储策略设置为根本不存储cookie,或者如果需要,可以使用deleteCookie:方法自行清理。

对于UIWebview加载的其他内容,当您创建由webview加载的NSURLRequest时,您可以设置一个缓存策略来控制是否缓存内容。例如:

NSURLRequest * request = [NSURLRequest requestWithURL: [NSURL URLWithString: url]
                                          cachePolicy: NSURLRequestReloadIgnoringLocalAndRemoteCacheData
                                       timeoutInterval: 60.0]
[webView loadRequest: request];

NSURLRequestReloadIgnoringLocalAndRemoteCacheData告诉请求忽略缓存并从网络加载请求。我不确定它是否也会阻止来自网络的响应被缓存,但是可以肯定的是,你总是可以自己从缓存中删除它:

[NSURLCache sharedURLCache] removeCachedResponseForRequest:request];

答案 1 :(得分:4)

如果您正在谈论私密浏览,UIWebView实际上不会在应用关闭后存储历史记录(只是临时来回)。相反,您必须自己实现存储历史记录,因此它将自动进行私密浏览。

简短回答:不要做任何事情。它已经处于私人浏览模式。

编辑:对于处理缓存,请查看此方法:

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection willCacheResponse:(NSCachedURLResponse *)cachedResponse

并使cashedResponse返回零。