2

認証されたコンテンツにアクセスする可能性のあるアプリケーションがあります。私は、webview が認証を処理できないことを知っているので、それを機能させるために NSConnection マジックを実行します (これに似たもの) 。

問題は、この Web ビューを使用してアクセスできるコンテンツがいくつかあることですが、認証が成功した後に Web ビューを読み込めないコンテンツが他にもあるということです。

しかし..モバイルサファリで同じURLを入力し、必要な資格情報を入力してからアプリに戻ると、WebViewはコンテンツを正常にロードしているようです。

このコードを使用して、Safariでの認証が行われる前後のCookieを確認してみました

[[NSHTTPCookieStorage sharedHTTPCookieStorage] cookies];

そしてクッキーは同じです。

コードが私のアプリが生成した Cookie を取得し、iOS で利用可能な Cookie を取得しないことを理解している限り、明らかにこれはヒントを探す方法ではありません...

何か案は?

4

3 に答える 3

4

最近、私はインターネット上で同じ質問を探していましたが、答えは「いいえ」です =(. UIWebView クラスと Safari または他のブラウザのオブジェクトは別々に存在し、サンドボックス化されています. Cookie に関する公式の立場は次のとおりです。

于 2012-10-11T13:41:51.300 に答える
0

私の理解では、Cookie は Webview からの最初のリクエストでは送信できませんが、最初のリクエストが成功した場合に限り、同じ URL への後続のリクエストで送信できます。

これにより、URL への最初の要求で認証するために Cookie を必要とする認証サービスで問題が発生します。

于 2013-01-22T19:57:37.327 に答える
-1

ユーザー資格情報がキーチェーン API 経由で保存されている可能性があります。キーチェーンはアプリ間で共有されるため、Safari に保存されているログイン/パスがアプリの UIWebView に表示されることがあります。

于 2013-04-06T12:41:35.290 に答える