美文网首页
UIWebView注入cookie

UIWebView注入cookie

作者: 湾逗 | 来源:发表于2018-05-17 14:36 被阅读0次

    _webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, MainScreenWidth, MainScreenHeight-NavHeight)];

        _webView.delegate = self;

        _webView.scalesPageToFit = YES;

        _webView.allowsInlineMediaPlayback = YES;

        _webView.mediaPlaybackRequiresUserAction = NO;

        [self.view addSubview:_webView];

    //获取cookie

        NSHTTPCookieStorage *sharedHTTPCookieStorage = [NSHTTPCookieStorage sharedHTTPCookieStorage];

        NSArray *cookies = [sharedHTTPCookieStorage cookiesForURL:[NSURL URLWithString:self.financeUrl]];

        NSMutableDictionary *cookieDict = [NSMutableDictionary dictionary];

        for (NSHTTPCookie *cookie in cookies) {

            [cookieDict setValue:cookie.value forKey:cookie.name];

        }

        if (![[cookieDict objectForKey:@"PHPSESSID"] isKindOfClass:[NSString class]]) {

            if ([[[NSUserDefaults standardUserDefaults] objectForKey:@"PHPSESSID"] isKindOfClass:[NSString class]] &&[[[NSUserDefaults standardUserDefaults] objectForKey:@"PHPSESSID"] length] >0) {

    //Dictionary保存cookie

                [cookieDict setValue:[[NSUserDefaults standardUserDefaults] objectForKey:@"PHPSESSID"] forKey:@"PHPSESSID"];

                NSMutableDictionary *newCookieDic = [NSMutableDictionary dictionary];

                NSMutableArray *newCookieArr = [NSMutableArray arrayWithCapacity:0];

                for (id key  in cookieDict) {

                    [newCookieDic setObject:key forKey:NSHTTPCookieName];

                    [newCookieDic setObject:[cookieDict objectForKey:key] forKey:NSHTTPCookieValue];

                    [newCookieDic setObject:[[NSURL URLWithString:self.financeUrl] host] forKey:NSHTTPCookieDomain];

                    [newCookieDic setObject:@"/" forKey:NSHTTPCookiePath];

                    [newCookieDic setObject:@"0" forKey:NSHTTPCookieVersion];

        //newCookie可能为空

                    NSHTTPCookie *newCookie = [NSHTTPCookie cookieWithProperties:newCookieDic];

                    if (newCookie !=nil) {

                        [newCookieArr addObject:newCookie];

    //注入cookie

                        [sharedHTTPCookieStorage setCookies:newCookieArr forURL:[NSURL URLWithString:self.financeUrl] mainDocumentURL:nil];

                    }

                }

            }

        }

    注:注入cookie需在加载URL之前有效。

        [_webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:self.financeUrl]]];

    相关文章

      网友评论

          本文标题:UIWebView注入cookie

          本文链接:https://www.haomeiwen.com/subject/ziubdftx.html