WKWebViewからすべてのクッキーを取得する
2023-08-29 09:41:26
質問
からクッキーを取得する際に
UIWebView
を使うのは簡単なようです。
NSHTTPCookieStorage.sharedHTTPCookieStorage()
を使えば、どうやら
WKWebView
はクッキーを別の場所に保存しているようです。
少し調べてみたところ、クッキーを掴んでいるのは
NSHTTPURLResponse
オブジェクトから取得することができました。しかし、これには
WKWebView
:
func webView(webView: WKWebView, decidePolicyForNavigationResponse navigationResponse: WKNavigationResponse, decisionHandler: (WKNavigationResponsePolicy) -> Void) {
if let httpResponse = navigationResponse.response as? NSHTTPURLResponse {
if let headers = httpResponse.allHeaderFields as? [String: String], url = httpResponse.URL {
let cookies = NSHTTPCookie.cookiesWithResponseHeaderFields(headers, forURL: url)
for cookie in cookies {
logDebug(cookie.description)
logDebug("found cookie " + cookie.name + " " + cookie.value)
}
}
}
}
不思議なことに、このクラスには
WKWebsiteDataStore
でクッキーを管理するクラスがあります。
WKWebView
しかし、このクラスには、Cookieのデータを取得するためのパブリックメソッドがありません。
let storage = WKWebsiteDataStore.defaultDataStore()
storage.fetchDataRecordsOfTypes([WKWebsiteDataTypeCookies], completionHandler: { (records) -> Void in
for record in records {
logDebug("cookie record is " + record.debugDescription)
for dataType in record.dataTypes {
logDebug("data type is " + dataType.debugDescription)
// get cookie data??
}
}
})
クッキーのデータを取得するための回避策はありますか?
どのように解決するのですか?
最後に
httpCookieStore
に対して
WKWebsiteDataStore
は iOS 11 で上陸しました。
https://developer.apple.com/documentation/webkit/wkwebsitedatastore?changes=latest_minor
関連
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] UIViewに角丸をつける
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] iPhone 5の画面解像度に対応したアプリを開発・移行するには?
-
[解決済み] iphoneアプリのベータテストはどのように行うのですか?
-
[解決済み] iOSとWatchKitで画像のtintColorを変更する方法
-
[解決済み] UITextFieldのテキストインセット?
-
[解決済み] UITableView - トップにスクロールする
-
[解決済み] WKWebViewで使用するCookieを設定することはできますか?
-
[解決済み] UIWebViewからWKWebViewへの移行
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[エラー処理】iOSのエラー、アーキテクチャx86_64の未定義シンボルについて
-
XCode のコンパイル例外を解決する clang: error: linker command failed with exit code 1
-
[解決済み] Xcode 6.3 - 現在の iOS Development 証明書または保留中の証明書要求がすでにあります。
-
[解決済み] キーボードがあるときに、UITextFieldを編集開始時に上に移動させるには?
-
[解決済み] Objective-CでNSNotificationCenterを通してメッセージを送受信する?
-
[解決済み] iPhone UITextField - プレースホルダーの文字色を変更する
-
[解決済み] UITextViewのマージン/パディングをなくす方法
-
[解決済み] UIViewの左上と右上だけにcornerRadiusを設定する方法は?
-
[解決済み] Swiftを使用してアプリのバージョンとビルド番号を取得するにはどうすればよいですか?
-
[解決済み] NSOperationとGrand Central Dispatchの比較