2016-11-09 90 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];