QWebEngineCookieStore 类
QWebEngineCookieStore 类提供了对 Chromium 饼干的访问。更多...
头文件 | #include <QWebEngineCookieStore> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
Inherits | QObject |
公共类型
公共函数
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 饼干。它可以用于同步 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公司有限公司。本文件中包含的文档贡献是该各自所有者的版权。本文件提供的文档是根据自由软件基金会发布的