QWebEngineCookieStore Class

Die Klasse QWebEngineCookieStore ermöglicht den Zugriff auf die Cookies von Chromium. Mehr...

Kopfzeile: #include <QWebEngineCookieStore>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore
Vererbungen: QObject

Öffentliche Typen

struct FilterRequest

Öffentliche Funktionen

virtual ~QWebEngineCookieStore()
void deleteAllCookies()
void deleteCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())
void deleteSessionCookies()
void loadAllCookies()
void setCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())
void setCookieFilter(const std::function<bool (const FilterRequest &)> &filterCallback)
void setCookieFilter(std::function<bool (const FilterRequest &)> &&filterCallback)

Signale

void cookieAdded(const QNetworkCookie &cookie)
void cookieRemoved(const QNetworkCookie &cookie)

Detaillierte Beschreibung

Die Klasse ermöglicht den Zugriff auf HTTP-Cookies von Chromium für ein bestimmtes Profil. Sie kann verwendet werden, um Cookies von Chromium und der QNetworkAccessManager zu synchronisieren, sowie um Cookies zu setzen, zu löschen und während der Navigation abzufangen. Da Cookie-Operationen asynchron sind, kann der Benutzer eine Callback-Funktion bereitstellen, um über den Erfolg der Operation informiert zu werden. Die Signalhandler für das Entfernen und Hinzufügen von Cookies sollten nicht zur Ausführung umfangreicher Aufgaben verwendet werden, da sie im Falle einer blockierenden Verbindung den IO-Thread blockieren könnten.

Verwenden Sie QWebEngineProfile::cookieStore() und QQuickWebEngineProfile::cookieStore(), um auf das Cookie-Speicherobjekt für ein bestimmtes Profil zuzugreifen.

Dokumentation der Mitgliedsfunktionen

[virtual noexcept] QWebEngineCookieStore::~QWebEngineCookieStore()

Zerstört dieses QWebEngineCookieStore Objekt.

[signal] void QWebEngineCookieStore::cookieAdded(const QNetworkCookie &cookie)

Dieses Signal wird immer dann ausgegeben, wenn dem Cookie-Speicher ein neues cookie hinzugefügt wird.

[signal] void QWebEngineCookieStore::cookieRemoved(const QNetworkCookie &cookie)

Dieses Signal wird ausgegeben, wenn ein cookie aus dem Cookie-Speicher gelöscht wird.

void QWebEngineCookieStore::deleteAllCookies()

Löscht alle Cookies im Cookie-Speicher.

Hinweis: Dieser Vorgang ist asynchron.

Siehe auch loadAllCookies().

void QWebEngineCookieStore::deleteCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())

Löscht cookie aus dem Cookie-Speicher. Es ist möglich, ein optionales origin URL-Argument anzugeben, um den Bereich des zu löschenden Cookies zu begrenzen.

Hinweis: Dieser Vorgang ist asynchron.

void QWebEngineCookieStore::deleteSessionCookies()

Löscht alle Sitzungscookies im Cookie-Speicher. Sitzungscookies haben kein Verfallsdatum.

Hinweis: Dieser Vorgang ist asynchron.

Siehe auch loadAllCookies().

void QWebEngineCookieStore::loadAllCookies()

Lädt alle Cookies in den Cookie-Speicher. Das Signal cookieAdded() wird bei jedem geladenen Cookie ausgegeben. Cookies werden automatisch geladen, wenn der Speicher initialisiert wird, was in den meisten Fällen beim Laden der ersten URL geschieht. Der Aufruf dieser Funktion ist jedoch nützlich, wenn Cookies aufgelistet werden sollen, bevor der Webinhalt aufgerufen wird.

Hinweis: Dieser Vorgang ist asynchron.

void QWebEngineCookieStore::setCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())

Fügt cookie zum Cookie-Speicher hinzu.

Hinweis: Wenn cookie eine QNetworkCookie::domain() angibt, die nicht mit einem Punkt beginnt, wird automatisch ein Punkt vorangestellt. Um das Cookie auf den genauen Server zu beschränken, lassen Sie QNetworkCookie::domain() weg und setzen Sie stattdessen origin.

Die angegebene URL sollte auch das Schema enthalten.

Hinweis: Dieser Vorgang ist asynchron.

void QWebEngineCookieStore::setCookieFilter(const std::function<bool (const FilterRequest &)> &filterCallback)

Installiert einen Cookie-Filter, der verhindern kann, dass Websites und Ressourcen Cookies verwenden. Die filterCallback muss ein Lambda oder ein Funktor sein, der eine FilterRequest Struktur annimmt. Wenn der Cookie-Zugriff akzeptiert werden soll, sollte die Filterfunktion true zurückgeben; andernfalls sollte sie false zurückgeben.

Der folgende Codeschnipsel veranschaulicht, wie ein Cookie-Filter gesetzt wird:

profile->cookieStore()->setCookieFilter(
    [&allowThirdPartyCookies](const QWebEngineCookieStore::FilterRequest &request)
    { return !request.thirdParty || allowThirdPartyCookies; }
);

Sie können den Filter mit dem Argument nullptr zurücksetzen.

Der Callback sollte nicht verwendet werden, um schwere Aufgaben auszuführen, da er auf dem IO-Thread läuft und daher das Chromium-Netzwerk blockiert.

Hinweis: Der Cookie-Filter steuert auch andere Funktionen, deren Verfolgungsmöglichkeiten denen von Cookies ähneln, einschließlich IndexedDB, DOM-Speicher, Dateisystem-API, Service Worker und AppCache.

Siehe auch deleteAllCookies() und loadAllCookies().

void QWebEngineCookieStore::setCookieFilter(std::function<bool (const FilterRequest &)> &&filterCallback)

Dies ist eine überladene Funktion.

© 2025 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.