ios – 具有两个UIWebView的独立cookie存储?

ios – 具有两个UIWebView的独立cookie存储?,第1张

概述背景 我正在开发一个简单的iPad应用程序,允许用户同时浏览不同登录的同一网站.因此,我有两个UIWebView,他们应该有不同的cookie存储,所以用户可以登录一个帐户在第一个UIWebView和第二个UIWebView上的另一个帐户. 我试过什么 我认为解决方案是在两个UIWebView中实现不同的cookie存储. Sasmito Adibowo撰写了一篇文章Implementing Yo 背景
我正在开发一个简单的iPad应用程序,允许用户同时浏览不同登录的同一网站.因此,我有两个UIWebVIEw,他们应该有不同的cookie存储,所以用户可以登录一个帐户在第一个UIWebVIEw和第二个UIWebVIEw上的另一个帐户.

我试过什么
我认为解决方案是在两个UIWebVIEw中实现不同的cookie存储.

Sasmito Adibowo撰写了一篇文章Implementing Your Own Cookie Storage,其中提供了有关如何在Mac上使用WebVIEw的自定义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存储?

谢谢!

解决方法 您是否尝试在webVIEwDIDStartLoad中获取与特定网络视图相关联的cookie(并且保持它们):
NShttpcookie *cookie;NShttpcookiestorage *cookieJar = [NShttpcookiestorage sharedhttpcookiestorage];for (cookie in [cookieJar cookies]) {    [self.cookies addobject:cookie];}

并立即存储这些cookie(从self.cookies检索值和键):

NSMutableDictionary *cookieDict = [NSMutableDictionary dictionary];[cookieDict setobject:@"value1" forKey:NShttpcookiename];[cookieDict setobject:@"value2" forKey:NShttpcookieValue];[cookieDict setobject:@"value3" forKey:NShttpcookieDomain];...etc..NShttpcookie *cookie = [NShttpcookie cookieWithPropertIEs:cookieDict];[[NShttpcookiestorage sharedhttpcookiestorage] setcookie:cookie];

您还需要在vIEwDIDLoad中看到这一点:

[[NShttpcookiestorage sharedhttpcookiestorage] setcookieAcceptPolicy:NShttpcookieAcceptPolicyAlways];
总结

以上是内存溢出为你收集整理的ios – 具有两个UIWebView的独立cookie存储?全部内容,希望文章能够帮你解决ios – 具有两个UIWebView的独立cookie存储?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1108827.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-29
下一篇 2022-05-29

发表评论

登录后才能评论

评论列表(0条)

保存