QWebEngineCookieStore 类

QWebEngineCookieStore 类提供了对 Chromium 饼干的访问。更多...

头文件 #include <QWebEngineCookieStore>
CMakefind_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmakeQT += webenginecore
Inherits QObject

公共类型

结构体FilterRequest

公共函数

virtual~QWebEngineCookieStore()
voiddeleteAllCookies()
voiddeleteCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())
voiddeleteSessionCookies()
voidloadAllCookies()
voidsetCookie(const QNetworkCookie &cookie, const QUrl &origin = QUrl())
voidsetCookieFilter(const std::function<bool (const FilterRequest &)> &filterCallback)
voidsetCookieFilter(std::function<bool (const FilterRequest &)> &&filterCallback)

信号

voidcookieAdded(const QNetworkCookie &cookie)
voidcookieRemoved(const QNetworkCookie &cookie)

详细描述

该类允许访问特定配置文件的 Chromium HTTP 饼干。它可以用于同步 Chromium 和 QNetworkAccessManager 之间的饼干,以及在导航期间设置、删除和拦截饼干。由于饼干操作是异步的,用户可以选择提供一个回调函数以通知操作的成功。不应使用删除和添加的信号处理器执行重任务,因为我可能会在阻塞连接的情况下阻塞 IO 线程。

使用 QWebEngineProfile::cookieStore() 和 QQuickWebEngineProfile::cookieStore() 访问特定配置文件的饼干存储对象。

成员函数文档

[virtual noexcept] QWebEngineCookieStore::~QWebEngineCookieStore()

销毁此 QWebEngineCookieStore 对象。

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

每当将新 饼干 添加到饼干存储时,此信号将发出。

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

每当从cookie存储中删除一个cookie时,都会发出此信号。

void QWebEngineCookieStore::deleteAllCookies()

从cookie存储中删除所有cookie。

注意:此操作是异步的。

另见:loadAllCookies().

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

从cookie存储中删除cookie。可以提供一个可选的origin URL参数来限制要删除的cookie的作用域。

注意:此操作是异步的。

void QWebEngineCookieStore::deleteSessionCookies()

删除cookie存储中的所有会话cookie。会话cookie未分配过期日期。

注意:此操作是异步的。

另见:loadAllCookies().

void QWebEngineCookieStore::loadAllCookies()

将所有cookie加载到cookie存储。每当加载一个cookie时,都会发出cookieAdded()信号。存储初始化时自动加载cookie,大多数情况下是在加载第一个URL时发生。然而,在进入网页内容之前列出cookie时,调用此函数很有用。

注意:此操作是异步的。

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

cookie添加到cookie存储。

注意:如果cookie指定的QNetworkCookie::domain()不以点开始,则自动在其前面添加一个点。要限制cookie只适用于确切的服务器,省略QNetworkCookie::domain()并设置origin

提供的URL也应包括方案。

注意:此操作是异步的。

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

安装一个cookie筛选器,可以防止网站和资源使用cookie。必须将filterCallback设置为一个接受FilterRequest结构的lambda或functor。如果接受cookie访问,则筛选函数应返回true;否则应返回false

以下代码片段演示了如何设置cookie筛选器

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

可以使用nullptr参数取消筛选。

由于它是在IO线程上运行的,因此不应使用回调执行繁重任务,这可能会阻塞Chromium网络。

注意:cookie筛选器还控制具有与cookie相似跟踪功能的其他功能,包括IndexedDB、DOM存储、文件系统API、服务工作者和AppCache。

另见:deleteAllCookies()和loadAllCookies().

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

这是一个重载函数。

© 2024 Qt公司有限公司。本文件中包含的文档贡献是该各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的GNU自由文档许可版本1.3的条款许可的。Qt及其相关标志是芬兰及其它全球国家的Qt公司有限公司的商标。所有其它商标属于其各自所有者。