代码之家  ›  专栏  ›  技术社区  ›  devguy

在iPhone和iPad上使用uiwebview进行隐私浏览

  •  4
  • devguy  · 技术社区  · 14 年前

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

    我能只为某些网站存储cookie吗,而且只能在我的应用程序中存储?据我所知,Web视图以共享模式存储cookie…以便与Safari和其他使用uiWebView的应用程序共享cookie。

    2 回复  |  直到 11 年前
        1
  •  5
  •   Jason Jenkins    14 年前

    根据 NSHTTPCookieStorage docs ,应用程序之间不共享cookie:

    iPhone OS注:不共享cookie 在iPhone操作系统的应用程序中。

    因此,在默认情况下,它们应该是“私有”的。您也可以使用 [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];
    
        2
  •  4
  •   devios1    11 年前

    如果你说的是隐私浏览,那么uiwebview实际上不会在应用程序关闭后存储历史记录(只是暂时的来回浏览)。相反,您必须自己实现存储历史记录,这样它将自动成为私有浏览。

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

    编辑:要处理缓存,请签出此方法:

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

    并使兑现响应返回零。