【问题标题】:WKWebView session expiredWKWebView 会话过期
【发布时间】:2017-01-13 17:18:25
【问题描述】:

我有一个可在普通网页上使用的 URL,但嵌入在 WKWebView 中时,我总是遇到错误会话已过期。有没有办法在这个 WKWebView 上启用 cookie?

【问题讨论】:

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

标签: ios wkwebview


【解决方案1】:

您可以从响应中保存 cookie

- (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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-07-13
    • 2016-08-04
    • 2011-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多