しめ鯖日記

swift, iPhoneアプリ開発, ruby on rails等のTipsや入門記事書いてます

【iOS11以降対応】WKWebViewのcookieの取得とセット

WKWebViewのcookieの取得とセットについて調べました。

cookieの取得は、getAllCookiesメソッドで行います。

webView.configuration.websiteDataStore.httpCookieStore.getAllCookies {
    print($0)
}

Cookieは下のようにData化してUserDefaultsに保存する事もできます。

webView.configuration.websiteDataStore.httpCookieStore.getAllCookies {
    UserDefaults.standard.set(NSKeyedArchiver.archivedData(withRootObject: $0), forKey: "cookies")
}

cookieのセットはsetCookieメソッドで行います。
getと違ってcookieの配列を操作できないようなので、一つ一つcookieをセットする必要がありそうです。

webView.configuration.websiteDataStore.httpCookieStore.setCookie(cookies completionHandler: nil)