Qt WebKit und Permanente Cookies
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,
Lösung
Sie müssen Ihre eigenen "Cookie Jar".
- Verwenden
QNetworkAccessManager::setCookieJar
. - 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.(AusQNetworkCookieJar
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);