2011-01-20 4 views

答えて

4

QWebViewは、独自のクッキーを処理しません。 QWebViewがQWebViewごとに同じQNebestAccessManagerを設定しているのか、それとも異なるQWebViewを使用しているのかはわかりませんが、後者は難しいアプローチに見えるかもしれませんが、の求人はQWebPageです。

QWebPage::networkAccessManager()を使用すると、QWebPageを担当するQNetworkAccessManagerと、QWebPage::setNetworkAccessManagerを取得して設定できます。

QNetworkAccessManager::cookieJar()を使用して、特定のQNetworkAccessManageのクッキーを処理するQNetworkCookieJarのハンドルを取得します。

QWebViewの異なるインスタンスを作成するか、異なるインスタンスのQNetworkAccessManagerを直接的かつ賢明に使用すると、異なるクッキーセッション/ jarsを持つ異なるブラウザビューを作成し、必要な結果を達成できます。

+0

okありがとうございますが、これは高水準です。件名に関するチュートリアルを教えてください。 – user63898

+0

ちょうど私が必要でした!本当にありがとう! –

1

私はこの質問が1年以上前であることを知っていますが、私は複数のセッションをセットアップするためにいくつかのコードを投稿したいと思っていました。

QWebView webView = new QWebView(); 
QNetworkCookieJar cookieJar = new QNetworkCookieJar(); 
QNetworkAccessManager nam = new QNetworkAccessManager(); 
nam.setCookieJar(cookieJar); 
webView.page()->setNetworkAccessManager(nam); 

このコードを使用して、複数のセッションを作成しても、独自のクラスでこのコードを囲み、ちょうどあなたのアプリケーション内で複数の自己完結型のWebブラウザセッションを持つことができるように、クラスのインスタンスをインスタンス化することができます。

関連する問題