16

メインウィンドウがあり、その中に単一の QWebView があります。特定の Web サイト (たとえば、www.kdkdkkd.com) の Cookie を永続的にしたいので、ユーザーがブラウザーを閉じて再度開くたびに、再度ログインする必要はありません。

ありがとう、

4

3 に答える 3

26

独自の「Cookie Jar」を設定する必要があります。

  1. を使用しQNetworkAccessManager::setCookieJarます。
  2. 拡張QNetworkCookieJar- ブラウザーを閉じたときにデフォルトで Cookie を保持しないため:

オブジェクトが削除されると、QNetworkCookieJarオブジェクトが保持していたすべての Cookie も破棄されます。Cookie を保存する場合は、このクラスから派生させ、ディスクへの保存を独自のストレージ形式に実装する必要があります。(QNetworkCookieJarドキュメンテーションより。)

これを行うには、それぞれの永続的なストレージにプッシュするQNetworkCookieJar::setCookiesFromUrl(最も安全ですが最も遅い) か、ブラウザー ウィンドウを閉じたときにのみ (全体的には高速ですが、Cookie jar が保存されずに異常終了したかのように安全性が低くなります) のいずれかを行うことができます。

一部の Cookieは永続化されないことに注意してください。これを使用QNetworkCookie::isSessionCookieして決定できます。

于 2011-03-23T15:08:52.150 に答える
4

「ブラウザ」と呼ばれる公式のQtデモがあります。これは、QSettingsスタックを使用して.iniファイルへのCookieの保存とロードをサポートするCookieJarクラスを実装します。

于 2013-03-13T10:44:59.957 に答える
1

NAM(NetworkAccessManager)にCookieが登録されたら、それを使用するようにWebビューを設定します。

myWebView->page()->setNetworkAccessManager(myNAM);

于 2012-07-19T13:26:59.980 に答える