相关疑难解决方法(0)

是否可以使用sharedHTTPCookieStorage为UIWebView手动设置cookie?

我在iOS应用程序中有Web视图,需要对身份验证cookie进行适当的身份验证.我正在寻找一种在iOS应用程序的webview中设置cookie的方法,而不必发出设置cookie的出站请求,因为我已经在客户端上有auth信息.

这篇文章向我们展示了UIWebView cookie的存储位置.

现在我正在加载一个隐藏的Web视图来发出一个出站请求,但是我不想做一个外部请求来设置一个简单的cookie.

objective-c uiwebview ios

72
推荐指数
3
解决办法
8万
查看次数

NSHTTPCookieStorage状态未保存在应用程序出口上.那里有任何明确的知识/文献?

苦苦于解决这个问题并且不愿实施自定义cookie管理系统.

看来iOS的一些隐藏级别的HTTP实现无法正确管理无会话cookie.每当HTTP响应设置或删除cookie时,立即检查NSHTTPCookieStorage cookie将产生预期结果并指示正确的sessionOnly值.

但是,如果应用程序在响应更新cookie后立即退出,则重新启动时,这些sessionOnly = FALSE cookie将恢复为某个先前状态,并且最新更新将丢失.

是否通过响应头或NSHTTPCookieStorage setCookie设置/删除cookie:没有区别.

一些缓存/同步伏都教必须在幕后进行.cookie变为持久化所需的时间最长可达5秒.

在那里有谁或者可以指出这种行为的明确解释?这是一个简单明了的bug吗?还是一些我无法理解的无证特征?

您可以使用一些代码重现:

- (void)applicationDidBecomeActive:(UIApplication *)application
{

    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];

    NSHTTPCookie *cookie;
    for (cookie in [NSHTTPCookieStorage sharedHTTPCookieStorage].cookies) {
        NSLog(@"%@=%@", cookie.name, cookie.value);
    }

    NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];
    [cookieProperties setObject:@"testCookie" forKey:NSHTTPCookieName];
    [cookieProperties setObject:[NSString stringWithFormat:@"%f", [[NSDate date] timeIntervalSince1970]] forKey:NSHTTPCookieValue];
    [cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieDomain];
    [cookieProperties setObject:@"www.example.com" forKey:NSHTTPCookieOriginURL];
    [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
    [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];

    // set expiration to one month from now
    [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];

    cookie = [NSHTTPCookie cookieWithProperties:cookieProperties];
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookie];

}
Run Code Online (Sandbox Code Playgroud)

此代码应在每次启动时输出新值.相反,您会看到如果您快速退出应用程序,则值将保持不变. …

cookies objective-c nshttpcookie ios

54
推荐指数
3
解决办法
2万
查看次数

如何在UIWebview中保持登录会话?

我在我的应用程序中使用UIWebView.我想在第一个webview上加载一个URL,该用户可以登录他的帐户.登录后,用户退出了webview并在iOS原生视图中执行其他操作.后来当他拨打相同的URL时,他必须登录.怎么可能?当我在一个标签中登录我的帐户时,我在Gmail中看到了这一点,并关闭它,每当我打开任何标签时,我的GMAIl帐户都会记录在Safari中.

我在下面尝试了一些东西,但没有工作.请建议我一个解决方案

   -(void)loadCookies
   {
   NSArray  *cookies       = [NSKeyedUnarchiver unarchiveObjectWithData: [[NSUserDefaults standardUserDefaults] objectForKey: @"cookies"]];
   NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

   for (NSHTTPCookie *cookie in cookies)
  {
    [cookieStorage setCookie: cookie];
   }
   }



 -(void)saveCookies
  {
NSData         *cookiesData = [NSKeyedArchiver archivedDataWithRootObject:       [[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies]];
NSUserDefaults *defaults    = [NSUserDefaults standardUserDefaults];
[defaults setObject: cookiesData forKey: @"cookies"];
[defaults synchronize];
 }
Run Code Online (Sandbox Code Playgroud)

我的应用流程如下所示.

1.在UIWebview上调用URL - http://www.userlogin.com 2.从该视图控制器中进行操作3.在应用程序中执行其他功能.4.在不同的UIWebView中调用相同的URL - http://www.userlogin.com

在这里,我需要显示他登录的会话.

cookies caching objective-c uiwebview ios

5
推荐指数
0
解决办法
1301
查看次数

UIWebview启用cookie

我正在尝试访问需要cookie的特定URL,UIWebView但由于禁用了cookie,因此无法访问它.所以我做了以下事情:

  • 已启用的Cookie:

    NSHTTPCookieStorage *cookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    
    [cookieStorage setCookieAcceptPolicy:NSHTTPCookieAcceptPolicyAlways];
    
    Run Code Online (Sandbox Code Playgroud)
  • NSURLConnection从响应中创建和提取cookie:

    NSArray *cookies = [ NSHTTPCookie cookiesWithResponseHeaderFields: [ httpResponse allHeaderFields ] forURL:response.URL];
    
    [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookies: cookies forURL: response.URL mainDocumentURL:nil];
    
    Run Code Online (Sandbox Code Playgroud)

但这都没有帮助.但是,如果我在safari中启动URL,它会成功加载,之后我也可以加载相同的URL UIWebView.你能帮我解决这个问题,我该如何启用cookie UIWebView

提前致谢

cookies uiwebview ios

4
推荐指数
1
解决办法
9229
查看次数

标签 统计

ios ×4

cookies ×3

objective-c ×3

uiwebview ×3

caching ×1

nshttpcookie ×1