Qwebkit を (タブで) 1 つ以上の QwebView で開くようにすることはできますか? それぞれが独自の Cookie を保持し、独自のセッションを開きます。最後に、複数のメールを開いて 1 つのブラウザで表示できるようにしたい
2 に答える
QWebViewは、独自に Cookie を処理しません。代わりに、その作業は各 QWebPageに求心するQNetworkAccessManagerにオフロードされますが、 QWebView が各 QWebView に同じ QNeworkAccessManager を設定するのか、それとも異なるものを使用するのかは現在わかりませんが、後者は難しいアプローチに見えるかもしれません。
QWebPage::networkAccessManager ()を使用して、QWebPage を担当する QNetworkAccessManager を取得し、QWebPage::setNetworkAccessManagerを設定することができます。
QNetworkAccessManager::cookieJar ()を使用して、特定の QNetworkAccessManage の Cookie を処理するQNetworkCookieJarのハンドルを取得します。
したがって、QWebView のさまざまなインスタンスを作成するか、QNetworkAccessManager のさまざまなインスタンスを直接かつ賢明に使用すると、さまざまな Cookie セッション/jar を使用してさまざまなブラウザー ビューを作成し、希望する結果を得ることができます。
この質問は1年以上前のものであることは知っていますが、複数のセッションをセットアップするためのコードを投稿すると思いました.
QWebView webView = new QWebView();
QNetworkCookieJar cookieJar = new QNetworkCookieJar();
QNetworkAccessManager nam = new QNetworkAccessManager();
nam.setCookieJar(cookieJar);
webView.page()->setNetworkAccessManager(nam);
このコードを使用すると、複数のセッションを作成し、このコードを独自のクラスに含めて、クラスのインスタンスをインスタンス化するだけで、アプリケーション内に複数の自己完結型 Web ブラウザー セッションを含めることができます。