ios开发进阶开发锦集程序员

iOS WebView带cookie请求URL

2017-07-05  本文已影响116人  YvanLiu

今天做了一个简单的原生与H5交互,需要同步登陆信息,定的方案是把用户名、用户ID、token放在cookie里面,加载页面的时候传过去。分享一下。

先来创建一个webview
self.webview = [[UIWebView alloc] initWithFrame:self.view.bounds];
self.webview.delegate = self;
self.webview.backgroundColor = [UIColor clearColor];
[self.view addSubview: self.webview];
UIWebViewDelegate
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
    NSLog(@"当前链接   %@",request);
    return YES;
}
- (void)webViewDidStartLoad:(UIWebView *)webView {
    NSLog(@"开始加载网页");
}
- (void)webViewDidFinishLoad:(UIWebView *)webView {
    NSLog(@"网页加载完毕");
}
- (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
    NSLog(@"网页加载出错");
}
然后我们来加cookie
NSArray *keys   = @[@"hjfapp_token",@"hjfapp_id",@"hjfapp_name"];
NSArray *values = @[user.token,user.user_id,user.member_num];
for (int i = 0; i<keys.count; i++) {
 
    NSMutableDictionary *cookieProperties = [[NSMutableDictionary alloc]init];
    [cookieProperties setObject:keys[i] forKey:NSHTTPCookieName];
     [cookieProperties setObject:values[i] forKey:NSHTTPCookieValue];
     [cookieProperties setObject:@"site-test.beanz.cn" forKey:NSHTTPCookieDomain];
     [cookieProperties setObject:@"/" forKey:NSHTTPCookiePath];
     [cookieProperties setObject:@"0" forKey:NSHTTPCookieVersion];
     [cookieProperties setObject:[[NSDate date] dateByAddingTimeInterval:2629743] forKey:NSHTTPCookieExpires];
     NSHTTPCookie *cookieuser = [[NSHTTPCookie alloc]initWithProperties:cookieProperties];
     [[NSHTTPCookieStorage sharedHTTPCookieStorage] setCookie:cookieuser];
   }
}
NSMutableURLRequest *request =[NSMutableURLRequest requestWithURL:self.url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:20];
[self.webview loadRequest:request];

现在可以说一下我要写这个的原因了

因为我之前再拼这个cookie的时候,给NSHTTPCookieDomain传的是空,H5那面直接从页面拿cookie拿不到,所以我搞了差不多一天,试了各种加cookie的方法。好丢脸(\捂脸)

最后咱们一个一个说一下这些都干嘛的
上一篇 下一篇

猜你喜欢

热点阅读