20

いくつかのWebViewインスタンスを作成するアプリがあり、それらを可能な限り独立して動作させたいと考えています。

少なくとも、私は彼らにクッキーを共有させたくありません。グーグルですばやく検索すると、「できません」という結果が得られました。私は誰かがより良い答えを持っていることを望んでいます。

4

4 に答える 4

18

基本的な答えは「できません」です。

これを少し見てみると、可能だと思いますが、非常に複雑です。WebView に resourceLoadDelegate を実装して、リクエストを無効にするように実装-webView:resource:willSendRequest:redirectResponse:fromDataSource:および変更し、HTTPShouldHandleCookies関連する Cookie を手動でリクエストに追加する必要があります。また-webView:resource:didReceiveResponse:fromDataSource:、サーバーから返されたすべての Cookie を検出するために実装する必要があります。WebView ごとの独自のコピーを割り当て/初期NSHTTPCookieStorage化し、それを使用して Cookie を保存/取得できます。

于 2008-12-13T10:26:26.683 に答える
3

この投稿は、あなたができることをまとめたものです。それがあなたにとって実現可能かどうかはわかりませんし、簡単な作業ではなく、おそらく危険でさえあると思いますが、可能であるように思われます.iCabはこのように行うと著者は主張しています.

私ももっと簡単な解決策を望んでいました。もちろん、Webkit はオープン ソースなので、動作を変更したフレームワークの独自のバージョンを展開することもできます。

于 2008-12-13T11:49:56.623 に答える
0

あなたができることは、あなたが分離したいそれらのリクエストのために、URLローディングシステム全体のクッキーストレージと混ざらないクッキーストアを扱うことができるlibcurlを見てみることです。私にとって、それは有効で単純な解決策のようです。本当にwebview/webkitに依存する必要がある場合は、そうではないかもしれません。

于 2008-12-22T16:48:28.757 に答える
0

Cookie は、特定のインスタンスやプロセスではなく、サービス/アプリケーション レベルで設定されると思います。おそらく、質問を修正して、インスタンスが Cookie を共有しないことが必要な問題を解決する方法を見つけることができます。

インスタンス間で Cookie を共有しない理由は何ですか?

同じ Web リソースに 3 つのビューだけが必要な場合は、同じデータ ソースを指すいくつかの仮想ホストをセットアップできます。

于 2008-12-12T22:02:19.290 に答える