虚位以待(AD)
虚位以待(AD)
首页 > 软件编程 > IOS编程/Objective-C > iOS UIWebView 通过 cookie 完成自动登录实例

iOS UIWebView 通过 cookie 完成自动登录实例
类别:IOS编程/Objective-C   作者:码皇   来源:互联网   点击:

本篇文章主要介绍了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!

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

相关热词搜索: uiwebview cookie登录 uiwebview cookie i