4
私は混合ネイティブビューコントローラとUIWebView
を使用するアプリケーションを開発しています。アプリのサインインはAPIによって処理され、authトークンをHTTPCookieStorage
のクッキーに保存するユーティリティー機能と永続的なユーザーモデルがあります。WKWebView HTTPCookieStorageからの認証Cookieを追加するには
WKWebView
に更新しますが、HTTPCookieStorage
のように、UIWebView
のようなCookieは自動的には読み込まれません。
レスポンスクッキーを回答hereから保存する方法を見つけましたが、私のユーザーモデルに認証トークンを保存するように回答を変更できますが、新しいリクエストに対してクッキーをどのように使用できるかわかりません。 Webビューでのナビゲーションを無効にするため、Cookieを初期ロードに追加するだけで済みます。
ヘッダーまたは別のソリューションにCookieの値を追加する方法はありますか?
ここでは、レスポンスからクッキーを取得するために使用するコードを示します。
func webView(_ webView: WKWebView, decidePolicyFor navigationResponse: WKNavigationResponse, decisionHandler: @escaping (WKNavigationResponsePolicy) -> Void) {
if let urlResponse = navigationResponse.response as? HTTPURLResponse,
let url = urlResponse.url,
let allHeaderFields = urlResponse.allHeaderFields as? [String : String] {
let cookies = HTTPCookie.cookies(withResponseHeaderFields: allHeaderFields, for: url)
HTTPCookieStorage.shared.setCookies(cookies , for: urlResponse.url!, mainDocumentURL: nil)
decisionHandler(.allow)
}
}
これはWKWebViewではありません。 – markhorrocks