美文网首页
IOS WKWebView添加cookie

IOS WKWebView添加cookie

作者: 鹏鹏的简书 | 来源:发表于2018-05-04 18:28 被阅读57次

在网络请求中,有一部分需要添加cookie,接下来就把为web添加cookie的方法小小列举一下,其实所有的要添加cookie的网络请求包括web,最终都是要在request上添加,如下:

if(_webView == nil) {

        // 1)创建WebView_webView = [[WKWebView alloc] initWithFrame:CGRectMake(0,0, Kwidth, Kheight-64)];

        // 2)设置代理_webView.delegate= self;

        _webView.scalesPageToFit = YES;

        _webView.scrollView.bounces = NO;

    }

    // 3)设置URL地址NSURL *url = [NSURL URLWithString:strUrl];

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];

    NSDictionary *cookie = [AppInfo shareAppInfo].userModel.cookies;

    if(cookie != nil) {

        [request addValue:[self readCurrentCookieWith:cookie] forHTTPHeaderField:@"Cookie"];

    }else{

        [request addValue:@""forHTTPHeaderField:@"Cookie"];

    }

    [_webView loadRequest:request];

    [self.view addSubview:_webView];

其中获得cookie的信息我封装了一下:

#pragmamark - 拼接cookie- (NSString*)readCurrentCookieWith:(NSDictionary*)dic{

    if(dic == nil) {

        return nil;

    }else{

        NSHTTPCookieStorage*cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];

        NSMutableString *cookieString = [[NSMutableString alloc] init];

        for(NSHTTPCookie*cookiein [cookieJar cookies]) {

            [cookieString appendFormat:@"%@=%@;",cookie.name,cookie.value];

        }

        //删除最后一个“;”[cookieString deleteCharactersInRange:NSMakeRange(cookieString.length -1,1)];

        return cookieString;

    }

[self setCookie];//设置cookie

在此之前,设置cookie。

//设置cookie 

- (void)setCookie{ NSMutableDictionary *cookieProperties = [NSMutableDictionary dictionary];  [cookiePropertiessetObject:@"cookie_user"forKey:NSHTTPCookieName];  [cookiePropertiessetObject:uidforKey:NSHTTPCookieValue];  [cookiePropertiessetObject:@"xxx.xxx.com"forKey:NSHTTPCookieDomain];[cookiePropertiessetObject:@"/"forKey:NSHTTPCookiePath];  [cookiePropertiessetObject:@"0"forKey:NSHTTPCookieVersion]; [cookiePropertiessetObject:[[NSDate date] dateByAddingTimeInterval:2629743]forKey:NSHTTPCookieExpires];  NSHTTPCookie *cookieuser = [NSHTTPCookie cookieProperties];  [[NSHTTPCookieStorage sharedHTTPCookieStorage]setCookie:cookieuser]; 

}

NSHTTPCookieStorage实现管理共享的cookie存储一个singleton对象(共享实例)。 这些cookies是所有的应用程序之间的共享和跨进程同步保存

//清除cookie 

- (void)deleteCookie{NSHTTPCookie *cookie;NSHTTPCookieStorage *cookieJar = [NSHTTPCookieStorage sharedHTTPCookieStorage];NSArray *cookieAry = [cookieJar cookiesForURL: [NSURL URLWithString: _urlstr]];for (cookiein cookieAry) { 

        [cookieJar deleteCookie: cookie]; 

    } 

}

附上原博主链接原文

相关文章

  • IOS WKWebView添加cookie

    在网络请求中,有一部分需要添加cookie,接下来就把为web添加cookie的方法小小列举一下,其实所有的要添加...

  • iOS WKWebView 添加 cookie

    今天遇到了一个问题,项目中需要加载web界面,使用WKWebView耗内存小、加载速度快、与JS的交互好,所以就尝...

  • iOS WKWebView添加Cookie

    网络请求添加Cookie都需要在request的时候添加 给request增加请求头 WKWebView加载请求

  • iOS WKWebView添加Cookie

    一、系统方法设置: 系统方法就不说了,百度一大推,但是听说WKWebView设置Cookie有bug。 二、第三方...

  • iOS UIWebView、WKWebView注入Cookie

    级别: ★☆☆☆☆标签:「iOS 」「UIWebView注入Cookie」「WKWebView注入Cookie」...

  • iOS13 WKWebView点击不跳转,没反应。

    iOS13开始 WKWebView 去掉了cookie的自动推送功能,可以自己添加上。代码如下: if (@ava...

  • APP中的cookie

    wkwebview中的cookie: 1:wkwebview默认可以携带原生接口种下的cookie;iOS8以后,...

  • WKWebview ajax添加cookie

    wkwebview 用WKUserScript添加cookie,cookie的source里必须带上 path

  • H5遇到的常见问题

    iOS WKWebView cookie 写入慢以及易丢失 现象: 原因:WKWebView 对 NSHTTPCo...

  • Session220 Customized Loading in

    iOS11中WKWebview得到了加强,添加了三种开发者呼声比较大的功能,分别是: Manage Cookie(...

网友评论

      本文标题:IOS WKWebView添加cookie

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