1

NSHTTPCookieStorageに関する Apple のドキュメントによると

NSHTTPCookieStorage クラスは、すべてのアプリケーションで共有される NSHTTPCookie オブジェクトのコレクションを管理するためのインターフェースを提供します。

したがって、私が間違っていなければ、OS X の Webview は NSHTTPCookieStorage を使用し、Safari は Webview を使用するため、Webview 上の特定の Web サイトにログインすると、Safari は Webview によって設定された Cookie を使用し、同じ場合にWeb サイトが Safari で開かれる場合は、認証する必要があります。

私の質問は、Cookie が Safari と Webviews の間で共有されているかどうかです。もしそうなら、なぜ上記のテストが機能しないのですか?

4

3 に答える 3

6

NSHTTPCookieStorage ドキュメントによると:

OS X 10.11 以降、各アプリには独自の sharedHTTPCookieStorage シングルトンがあり、他のアプリケーションとは共有されません。

したがって、以前の回答は 3 年前に書かれた時点では正しかったのですが、現在の回答は次のようになります。

1) OS X 10.11 より前 - はい、それらは共有されていました

2) OS X 10.11 および macOS 10.12 - いいえ、共有されなくなりました。

于 2016-12-02T01:31:10.267 に答える
5

Understanding NSHTTPCookieStorage for the iPhone の説明によると、Cookie はアプリケーション間で共有されません。

これは、「Cookie ストレージ」セクションのドキュメントで確認されています。

iOS 注: Cookie は iOS のアプリケーションによって共有されません。

于 2012-11-14T17:08:15.783 に答える
1

私の経験では、OS X では、答えはイエスです。Cookie は Safari と WebView の間で共有されているようです。

于 2013-06-28T14:38:44.900 に答える