QWebEngineCookieStore Class
QWebEngineCookieStore 类可访问 Chromium 的 Cookie。更多
头文件: | #include <QWebEngineCookieStore> |
CMake: | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake: | QT += webenginecore |
继承: | QObject |
公共类型
struct | FilterRequest |
公共函数
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) |
信号
void | cookieAdded(const QNetworkCookie &cookie) |
void | cookieRemoved(const QNetworkCookie &cookie) |
详细说明
该类允许访问特定配置文件中 Chromium 的 HTTP cookie。它可用于同步 Chromium 和QNetworkAccessManager 的 Cookie,以及在导航过程中设置、删除和拦截 Cookie。由于 cookie 操作是异步的,用户可以选择提供一个回调函数,以获取操作成功的通知。删除和添加的信号处理器不应用于执行繁重的任务,因为在连接阻塞的情况下,它们可能会阻塞 IO 线程。
使用QWebEngineProfile::cookieStore() 和QQuickWebEngineProfile::cookieStore() 访问特定配置文件的 cookie 存储对象。
成员函数文档
[virtual noexcept]
QWebEngineCookieStore::~QWebEngineCookieStore()
销毁QWebEngineCookieStore 对象。
[signal]
void QWebEngineCookieStore::cookieAdded(const QNetworkCookie &cookie)
每当有新的cookie 添加到 cookie 存储器时,就会发出该信号。
[signal]
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 或函数。如果接受 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)
这是一个重载函数。
© 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.