Frage

Ich habe ein Hauptfenster, in es, ich habe eine single-QWebView.Ich möchte eine bestimmte website (www.kdkdkkd.com für Beispiel, die cookies dauerhaft, so dass jedes mal, wenn ein Benutzer schließt und repopens browser er nicht wieder anmelden müssen.

Vielen Dank,

War es hilfreich?

Lösung

Sie müssen Ihre eigenen "Cookie Jar".

  1. Verwenden QNetworkAccessManager::setCookieJar .
  2. Verlängern QNetworkCookieJar - da es nicht anhalten cookies standardmäßig, wenn der browser geschlossen wird:

Sobald der QNetworkCookieJar Objekt gelöscht, alle cookies von gehalten werden verworfen als gut.Wenn Sie sparen möchten die cookies ist, sollten Sie ableiten aus diese Klasse und implementieren Sie der Speicherung zu Festplatte, um Ihre eigenen Speicher-format.(Aus QNetworkCookieJar Dokumentation.)

Sie können dies tun, entweder durch drücken auf ein permanentes Speichermedium auf jedem QNetworkCookieJar::setCookiesFromUrl (sicherste, aber langsamste) oder nur, wenn das browser-Fenster geschlossen wird (insgesamt schneller, aber weniger sicher, als wenn Sie verlassen ungewöhnlich cookie jar-wird nicht gespeichert).

Beachten Sie, dass manche cookies sollen nicht gespeichert werden, können Sie QNetworkCookie::isSessionCookie um dies zu bestimmen.

Andere Tipps

Es gibt eine offizielle Qt-Demo mit dem Namen " Browser" ".Es implementiert eine CookieJar-Klasse, die das Speichern und Laden von Cookies in eine INI-Datei mithilfe des QSettings-Stacks unterstützt.

Sobald Cookies im NAM (NetworkAccessManager) registriert sind, stellen Sie die Webansicht so ein, dass sie verwendet wird:

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

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top