Objective-C のコード例が殆どないので、記録しておく。
1.WKWebView のクッキーを取得する
if (@available(iOS 11.0, *)) { [WKWebsiteDataStore.defaultDataStore.httpCookieStore getAllCookies:^(NSArray<NSHTTPCookie *> *aCookies) { NSLog(@"aCookies=%@", aCookies); for (NSHTTPCookie *cookie in aCookies) { NSLog(@"%@ : %@", cookie.name, cookie.value); } }]; }
2.クッキーを WKWebView に設定する
WKWebViewConfiguration *webConfig = [[WKWebViewConfiguration alloc] init]; webConfig.dataDetectorTypes = WKDataDetectorTypeLink; // iOS 10.0+ webConfig.preferences.javaScriptEnabled = true; WKWebView *myWebView = [[WKWebView alloc] initWithFrame: webFrame configuration: webConfig]; [webConfig release]; WKHTTPCookieStore *cookieStroe = myWebView.configuration.websiteDataStore.httpCookieStore; NSArray *Cookies; // 設定するクッキー for (NSHTTPCookie *cookie in Cookies) { NSLog(@"%@ : %@", cookie.name, cookie.value); [cookieStroe setCookie:cookie completionHandler:^{ NSLog(@"set cookie"); }]; }
3.クッキーを NSURLConnection に設定する
NSURL *url; // URL NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL: url cachePolicy: NSURLRequestReloadIgnoringLocalAndRemoteCacheData timeoutInterval:60]; NSArray *Cookies; // 設定するクッキー NSDictionary *header = [NSHTTPCookie requestHeaderFieldsWithCookies: Cookies]; [request setAllHTTPHeaderFields:header]; connection = [[NSURLConnection alloc] initWithRequest:request delegate:self]; [request release];