现有应用如何实现此功能???
我是否可以仅为某些网站存储Cookie,并且仅在我的应用内存储?据我所知,Web视图以共享模式存储cookie ...因此它们与Safari以及使用UIWebView的其他应用程序共享。
答案 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返回零。