栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > iOS

iOS UIWebView 通过 cookie 完成自动登录实例

iOS 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

iOS UIWebView 通过 cookie 完成自动登录实例

1、相关介绍

iOS在UIWebView中获取的cookie的方法:NSHTTPcookieStorage * ncookies = [NSHTTPcookieStorage sharedHTTPcookieStorage];

再具体获取某个域的cookie:NSArray* cookiesURL = [ncookies cookiesForURL:[NSURL URLWithString:@"你的URL"]];

通过[[NSHTTPcookieStorage sharedHTTPcookieStorage]  setcookie:usercookie]方法将 cookies来保存起来,但是这样虽然可以保存cookies但是你应用退出之后还是会丢失(其实是cookies过期的问题),做好的方法是把cookies放到NSUserDefaults保存起来.

2、实现

1.在UIWebView的代理方法中实现获取cookies并将cookies放到NSUserDefaults保存起来:- (void)webViewDidFinishLoad:(UIWebView*)webView中写入

- (void)webViewDidFinishLoad:(UIWebView*)webView{
  
  NSArray *ncookies = [[NSHTTPcookieStoragesharedHTTPcookieStorage] cookies];
  for (NSHTTPcookie *cookie in ncookies){
    if ([cookie isKindOfClass:[NSHTTPcookie class]]){
      
      if ([cookie.name isEqualToString:@"PHPSESSID"]) {
 NSNumber *sessionOnly =[NSNumber numberWithBool:cookie.sessionOnly];
 NSNumber *isSecure = [NSNumber numberWithBool:cookie.isSecure];
 NSArray *cookies = [NSArray arrayWithObjects:cookie.name, cookie.value, sessionOnly, cookie.domain, cookie.path, isSecure, nil];
 [[NSUserDefaults standardUserDefaults] setObject:cookies forKey:@"cookies"];
 break;
      }
    }
  }
}

2.获取cookies:运行之后,UIWebView加载url之前获取保存好的cookies,并设置cookies,

NSArray *cookies =[[NSUserDefaults standardUserDefaults] objectForKey:@"cookies"];
  if (cookies.count >0) {
    NSMutableDictionary *cookieProperties = [NSMutableDictionarydictionary];
    [cookieProperties setObject:[cookies objectAtIndex:0] forKey:NSHTTPcookieName];
    [cookieProperties setObject:[cookies objectAtIndex:1] forKey:NSHTTPcookievalue];
    [cookieProperties setObject:[cookies objectAtIndex:3] forKey:NSHTTPcookieDomain];
    [cookieProperties setObject:[cookies objectAtIndex:4] forKey:NSHTTPcookiePath];
    NSHTTPcookie *cookieuser = [NSHTTPcookiecookieWithProperties:cookieProperties];
    [[NSHTTPcookieStorage sharedHTTPcookieStorage] setcookie:cookieuser];
  }

注意:要在[self.webView loadRequest:req];之前设置获取cookies!

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/166656.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号