背景
我正在开发一个简单的 iPad 应用程序,它允许用户同时使用不同的登录名浏览同一个网站。因此我有两个UIWebView
,它们应该有不同的 cookie 存储,因此用户可以在第一个上登录一个帐户,UIWebView
在第二个上登录另一个帐户UIWebView
。
我尝试了什么?我认为解决方案是在我拥有
的两个中实现不同的 cookie 存储。UIWebView
Sasmito Adibowo 写了一篇文章实现您自己的 Cookie 存储,其中提供了有关如何WebView
在 Mac 上使用自定义 cookie 存储的详细信息。
它是通过修改WebView
将要发送的 NSURLRequest 来完成的,向其添加 cookie 标头,并拦截响应WebView
并从响应标头中提取 cookie 并将其保存到我们自己的 cookie 存储中。
从技术上讲,它是通过实现这两个委托方法来完成的:
- (void)webView:(WebView *)sender resource:(id)identifier didReceiveResponse:(NSURLResponse *)response fromDataSource:(WebDataSource *)dataSource
- (NSURLRequest *)webView:(WebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(WebDataSource *)dataSource
虽然它没有记录,UIWebView
但确实支持上述方法之一,但方法名称略有不同:
- (NSURLRequest *)uiWebView:(UIWebView *)sender resource:(id)identifier willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse fromDataSource:(id)dataSource
但是,UIWebView
没有等效的委托方法webView:resource:didReceiveResponse:fromDataSource:
,因此我无法从响应标头中提取 cookie。
问题
有没有办法必须UIWebView
使用自定义 cookie 存储,所以两者UIWebView
可以拥有自己的 cookie 存储?
谢谢!