2016-11-09 86 views
0

我有一个工作在一个正常的网页,但嵌入在一个WKWebView的URL我总是得到错误会话过期。有什么方法可以在这个WKWebView上启用cookie吗?WKWebView会话过期

+0

Cookies是默认启用。您的网站是否需要JavaScript,并且您是否启用了JavaScript?您可以在Mac上使用Safari的页面检查器检查cookie。 – clemens

回答

0

您可以从响应

- (void)webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy))decisionHandler { 
NSDictionary *headers = [(NSHTTPURLResponse *)navigationResponse.response allHeaderFields]; 
    if ([headers objectForKey:@"Set-Cookie"] != nil) { 
     _cookie = [headers objectForKey:@"Set-Cookie"]; 
    } 
    decisionHandler(WKNavigationResponsePolicyAllow); 
} 

保存Cookie,并设置Cookie的请求

_request = [[NSMutableURLRequest alloc] initWithURL:url]; 
[_request setValue:_cookie forHTTPHeaderField:@"Cookie"]; 
[_webView loadRequest:_request];