2017-07-16 5 views
0

私は開発中で、WKWebViewとネイティブログイン画面を持つiOSアプリです。ネイティブのログイン画面では、JSONオブジェクトと2つのCookieを返すAPI呼び出しを使用してログインできます。WKWebViewはHTTPリクエストからクッキーを注入します

私がやっていることは、通話が成功し、ユーザーがWKWebView画面に行くと、表示されているWebサイトにもログインしていることです。

WKWebViewは既にロードされていますので、私の質問は、ユーザーがWKWebViewにログインしているためにどのように処理すればよいですか? 私はthis question & answerを読んだことがありますが、それは私のためには機能しません。 WKWebViewは何も表示していないので、ブロックされているか、ループしていると思います。私は複数のWKWebViewsを使用してい

UPDATE が、私はAPI呼び出しを行う場合、それが正常に動作していますWKWebView、その後、1に行くことが判明、私はログインしています。おそらく、ここにトリッキーな部分は、私が「ということです複数のWKWebViewを使用しています。

+0

多分、この回答はあなたに役立ちます。https://stackoverflow.com/questions/26573137/can-i-set-the-cookies-to-be-used-by-a-wkwebview –

答えて

2

最終的に私のクッキーの問題の解決策が見つかりました。

私はすべての私のWKWebViewsのために一つのグローバルWKProcessPoolを作成しなければならなかったと私は私がまだWKWebViewsに接続されており、何も失わなかったところ、私が戻ったクッキーをしたすべてのログインコールでHTTPCookieStorage.shared.cookiesからクッキーを送信する必要がありました。これは誰かが同じ問題を抱えているのに役立ちます。

+0

私はクッキーを扱うための助けが必要です – Siva

2

あなたのユースケースは、WKHTTPCookieStoreでエレガントな方法でiOS11でサポートされています。ログイン後、JSON API経由でCookieを取得する場合は、setCookieを使用して、WKWebViewに自動的にログインします。

WKWebViewはiOS11でメジャーなアップデートを受けており、多くの新たな可能性を広げています。 Customized Loading in WKWebView WWDC sessionには、特定のユースケースのデモがあります。

iOS10以前のバージョンでこれを行う必要がある場合、残念ながらこれは役に立たないでしょう。

+1

これは有望ですが、私はiOS 10もサポートしています –