QWebEngineProfile 类
QWebEngineProfile 类提供了多个页面共享的 Web 引擎配置文件。更多...
头文件 | #include <QWebEngineProfile> |
CMake | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore) target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
qmake | QT += webenginecore |
继承自 | QObject |
公共类型
枚举 | HttpCacheType { MemoryHttpCache, DiskHttpCache, NoCache } |
枚举 | PersistentCookiesPolicy { NoPersistentCookies, AllowPersistentCookies, ForcePersistentCookies } |
公共函数
QWebEngineProfile(QObject *parent = nullptr) | |
QWebEngineProfile(const QString &storageName, QObject *parent = nullptr) | |
QString | cachePath() const |
void | clearAllVisitedLinks() |
void | clearHttpCache() |
void | clearVisitedLinks(const QList<QUrl> &urls) |
QWebEngineClientCertificateStore * | clientCertificateStore() |
QWebEngineCookieStore * | cookieStore() |
QString | downloadPath() const |
QString | httpAcceptLanguage() const |
int | httpCacheMaximumSize() const |
QWebEngineProfile::HttpCacheType | httpCacheType() const |
QString | httpUserAgent() const |
void | installUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler *handler) |
bool | isOffTheRecord() const |
(since 6.5) bool | isPushServiceEnabled() const |
bool | isSpellCheckEnabled() const |
QWebEngineProfile::PersistentCookiesPolicy | persistentCookiesPolicy() const |
QString | persistentStoragePath() const |
void | removeAllUrlSchemeHandlers() |
void | removeUrlScheme(const QByteArray &scheme) |
void | removeUrlSchemeHandler(QWebEngineUrlSchemeHandler *handler) |
(since 6.2) void | requestIconForIconURL(const QUrl &url, int desiredSizeInPixel, std::function<void (const QIcon &, const QUrl &)> iconAvailableCallback) const |
(since 6.2) void | requestIconForPageURL(const QUrl &url, int desiredSizeInPixel, std::function<void (const QIcon &, const QUrl &, const QUrl &)> iconAvailableCallback) const |
QWebEngineScriptCollection * | scripts() const |
void | setCachePath(const QString &path) |
void | setDownloadPath(const QString &path) |
void | setHttpAcceptLanguage(const QString &httpAcceptLanguage) |
void | setHttpCacheMaximumSize(int maxSize) |
void | setHttpCacheType(QWebEngineProfile::HttpCacheType httpCacheType) |
void | setHttpUserAgent(const QString &userAgent) |
void | setNotificationPresenter(std::function<void (std::unique_ptr<QWebEngineNotification>)> notificationPresenter) |
void | setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy newPersistentCookiesPolicy) |
void | setPersistentStoragePath(const QString &path) |
(since 6.5) void | setPushServiceEnabled(bool enable) |
void | setSpellCheckEnabled(bool enable) |
void | setSpellCheckLanguages(const QStringList &languages) |
void | setUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor) |
QWebEngineSettings * | settings() const |
QStringList | spellCheckLanguages() const |
QString | storageName() const |
const QWebEngineUrlSchemeHandler * | urlSchemeHandler(const QByteArray &scheme) const |
bool | visitedLinksContainsUrl(const QUrl &url) const |
信号
(since 6.7) void | clearHttpCacheCompleted() |
void | downloadRequested(QWebEngineDownloadRequest *download) |
静态公开成员
QWebEngineProfile * | defaultProfile() |
详细描述
Web引擎配置文件包含设置、脚本、持久cookie策略以及属于该配置文件的 所有Web引擎页面共用的已访问链接列表。
属于该配置文件的所有页面共享一个公共的QWebEngineSettings 实例,可通过该方法访问:settings()。 同样,scripts() 方法可提供对公共QWebEngineScriptCollection 实例的访问。
已访问链接的信息与持久cookie和其他持久数据一起存储在由storageName() 返回的存储中。持久数据存储在由调用setPersistentStoragePath()设置的子目录中,缓存位于由调用setCachePath()设置的子目录中。通过调用setHttpCacheType(),可以将缓存类型设置为内存中或磁盘上。如果只设置了存储名称,则子目录将自动创建并命名。如果您手动设置了任何值,请在创建任何属于该配置文件的页面之前进行设置。
可以通过调用clearVisitedLinks() 或 clearAllVisitedLinks() 清除缓存中的链接。《PersistentCookiesPolicy》 描述了会话和持久cookie是否保存到并从内存或磁盘恢复。
配置文件可以用来隔离页面。一个常见的用例是为私密浏览模式创建一个专门的离线配置文件。如果不指定存储名称,使用QWebEngineProfile()将构建一个新的离线配置文件,不会在本地机上留下记录,也没有持久数据或缓存。可以用isOffTheRecord()方法来检查配置文件是否为离线。
可以通过defaultProfile()访问默认配置文件。这是一个内置的配置文件,不属于任何特定配置文件创建的所有网页。
通过实现QWebEngineUrlRequestInterceptor接口,并在配置文件上使用setUrlRequestInterceptor()进行注册,可以在URL请求到达Chromium的网络堆栈之前进行拦截、阻止和修改URL请求(QWebEngineUrlRequestInfo)。
可以通过installUrlSchemeHandler()为一个配置文件注册QWebEngineUrlSchemeHandler来添加对自定义URL方案的支撑。对于该方案的请求将作为QWebEngineUrlRequestJob对象在QWebEngineUrlSchemeHandler::requestStarted()中使用。
可以通过使用setSpellCheckEnabled()方法来按配置文件启用拼写检查,并且可以通过使用setSpellCheckLanguages()方法设置当前用于拼写检查的语言。
成员类型文档
枚举 QWebEngineProfile::HttpCacheType
此枚举描述了HTTP缓存类型
常量 | 值 | 描述 |
---|---|---|
QWebEngineProfile::MemoryHttpCache | 0 | 使用内存缓存。这是在设置off-the-record 时的默认设置。 |
QWebEngineProfile::DiskHttpCache | 1 | 使用磁盘缓存。这是在配置文件不是off-the-record 时的默认设置。如果在一个off-the-record 配置文件上设置,将改为设置MemoryHttpCache 。 |
QWebEngineProfile::NoCache | 2 | 禁用内存和磁盘缓存。(自Qt 5.7起添加) |
枚举 QWebEngineProfile::PersistentCookiesPolicy
此枚举描述了Cookie持久性的策略
常量 | 值 | 描述 |
---|---|---|
QWebEngineProfile::NoPersistentCookies | 0 | 会话和持久Cookie都存储在内存中。这是在设置off-the-record 或没有持久数据路径时唯一可用的设置。 |
QWebEngineProfile::AllowPersistentCookies | 1 | 标记为持久的Cookies保存到并从磁盘恢复,而会话Cookie仅在崩溃恢复时保存到磁盘。这是默认设置。 |
QWebEngineProfile::ForcePersistentCookies | 2 | 会话和持久Cookie都保存到并从磁盘恢复。 |
成员函数文档
[显式]
QWebEngineProfile::QWebEngineProfile(QObject *parent = nullptr)
使用父级parent构造一个新的离线配置文件。
一个离线配置文件不会在本地机器上留下记录,也没有持久数据或缓存。因此,HTTP缓存只能位于内存中,Cookies只能是不可持久化的。尝试更改这些设置将没有效果。
另请参阅isOffTheRecord。
[显式]
QWebEngineProfile::QWebEngineProfile(const QString &storageName, QObject *parent = nullptr)
使用存储名称 storageName 和父对象 parent 构建一个新的配置文件。
存储名称必须是唯一的。
基于磁盘的 QWebEngineProfile 应在应用退出之前或同时被销毁,否则缓存和持久数据可能无法完全写入磁盘。
另请参阅storageName()。
QString QWebEngineProfile::cachePath() const
返回用于缓存的路径。
默认情况下,这位于 QtWebengine/StorageName 特定的子目录下的 StandardPaths::CacheLocation。
注意:请使用 QStandardPaths::writableLocation(QStandardPaths::CacheLocation) 来获取 QStandardPaths::CacheLocation 路径。
另请参阅setCachePath(),storageName() 和 QStandardPaths::writableLocation()。
void QWebEngineProfile::clearAllVisitedLinks()
清除访问链接数据库中的所有链接。
另请参阅clearVisitedLinks()。
void QWebEngineProfile::clearHttpCache()
删除配置文件的缓存条目。
注意:在清除操作进行时,请确保不要开始新的导航或对配置文件进行任何操作。当清除操作完成时,clearHttpCacheCompleted() 信号会被触发。
另请参阅QWebEngineProfile::clearHttpCacheCompleted()。
[信号,自 6.7 版起]
void QWebEngineProfile::clearHttpCacheCompleted()
当 clearHttpCache() 操作完成时,会发出此信号。
此函数是在 Qt 6.7 中引入的。
另请参阅QWebEngineProfile::clearHttpCache()。
void QWebEngineProfile::clearVisitedLinks(const QList<QUrl> &urls)
从访问链接数据库中清除 urls 中的链接。
另请参阅clearAllVisitedLinks()。
QWebEngineClientCertificateStore *QWebEngineProfile::clientCertificateStore()
返回配置文件的客户端证书存储。
QWebEngineCookieStore *QWebEngineProfile::cookieStore()
返回此配置文件的 cookie 存储。
[静态]
QWebEngineProfile *QWebEngineProfile::defaultProfile()
返回默认配置文件。
默认配置文件是离线状态。
另请参阅storageName()。
QString QWebEngineProfile::downloadPath() const
存储下载文件的路径。
注意:默认情况下,下载路径为 QStandardPaths::DownloadLocation。
另请参阅:setDownloadPath() 和 QStandardPaths::writableLocation。
[信号]
void QWebEngineProfile::downloadRequested(QWebEngineDownloadRequest *download)
每当启动下载时都会发出此信号。绑定到参数 download 的 download 代表了下载的状态。需要通过 QWebEngineDownloadRequest::accept() 明确接受下载或默认取消下载。下载项属于配置文件。如果不接受,它将在信号发出后立即被删除。此信号不能与队列连接一起使用。
另请参阅:QWebEngineDownloadRequest 和 QWebEnginePage::download。
QString QWebEngineProfile::httpAcceptLanguage() const
返回 Accept-Language HTTP请求头的值。
另请参阅:setHttpAcceptLanguage。
int QWebEngineProfile::httpCacheMaximumSize() const
返回 HTTP 缓存的最大字节数。
如果大小由 QtWebEngine 自动控制,则将返回 0
。
另请参阅:setHttpCacheMaximumSize() 和 httpCacheType。
QWebEngineProfile::HttpCacheType QWebEngineProfile::httpCacheType() const
返回使用的 HTTP 缓存类型。
如果配置文件是离线记录,则返回 MemoryHttpCache。
另请参阅:setHttpCacheType() 和 cachePath。
QString QWebEngineProfile::httpUserAgent() const
返回与 HTTP 一起发送以标识浏览器的用户代理字符串。
注意:在 Windows 8.1 及更高版本上,除非应用程序包含声明支持更新的 Windows 版本的清单,否则默认用户代理始终报告 "Windows NT 6.2"(Windows 8)。
另请参阅:setHttpUserAgent() 和 Windows 应用程序清单。
void QWebEngineProfile::installUrlSchemeHandler(const QByteArray &scheme, QWebEngineUrlSchemeHandler *handler)
在配置文件中为自定义 URL 方案 scheme 注册处理程序 handler。
需要在应用程序启动时先使用 QWebEngineUrlScheme::registerScheme 注册方案。
bool QWebEngineProfile::isOffTheRecord() const
如果是无记录配置文件且在计算机上不留下记录,则返回 true
。
这会强制cookie和HTTP缓存在内存中,但也强制将所有其他通常持久的数据存储在内存中。
[自6.5起]
bool QWebEngineProfile::isPushServiceEnabled() const
如果启用推送消息服务,则返回true
。
注意:默认情况下,推送消息服务是禁用的。
此功能是在Qt 6.5中引入的。
另请参阅:setPushServiceEnabled。
bool QWebEngineProfile::isSpellCheckEnabled() const
如果启用拼写检查,则返回true
;否则返回false
。
另请参阅:setSpellCheckEnabled。
QWebEngineProfile::PersistentCookiesPolicy QWebEngineProfile::persistentCookiesPolicy() const
返回当前持久cookies的策略。
如果配置文件是离线模式,返回NoPersistentCookies。
另请参阅:setPersistentCookiesPolicy。
QString QWebEngineProfile::persistentStoragePath() const
返回用于存储浏览器和网络内容持久数据的路径。
持久数据包括持久cookies、HTML5本地存储和已访问链接。
默认情况下,此路径在QtWebengine/StorageName特定子目录下的QStandardPaths::DataLocation下方。
注意:使用QStandardPaths::writableLocation(QStandardPaths::DataLocation)以获取QStandardPaths::DataLocation路径。
另请参阅:setPersistentStoragePath、storageName和QStandardPaths::writableLocation。
void QWebEngineProfile::removeAllUrlSchemeHandlers()
从配置文件中删除所有已安装的自定义URL方案处理器。
void QWebEngineProfile::removeUrlScheme(const QByteArray &scheme)
从配置文件中删除自定义URL方案scheme。
另请参阅:removeUrlSchemeHandler。
void QWebEngineProfile::removeUrlSchemeHandler(QWebEngineUrlSchemeHandler *handler)
从配置文件中删除自定义URL方案处理器handler。
另请参阅:removeUrlScheme。
[自6.2起]
void QWebEngineProfile::requestIconForIconURL(const QUrl &url, int desiredSizeInPixel, std::function<void (const QIcon &, const QUrl &)> iconAvailableCallback) const
从数据库请求具有指定url的图标。每个配置文件都有自己的图标数据库,并且它存储在持久存储中,因此即使没有网络连接也可以访问存储的图标。图标必须先加载才能存储在数据库中。
url指定了图标的URL。如果存在多个可用的图标,则返回与desiredSizeInPixel最接近的图标。结果图标会调整到desiredSizeInPixel大小。如果desiredSizeInPixel为0,则返回最大的可用图标。
这个函数是异步的,结果通过iconAvailableCallback返回。如果在请求图标时进行调用,则回调会被调用。如果请求的图标可用,第一个参数(类型为QIcon)是结果。否则,它为null。
第二个参数存储请求图标的URL。如果图标无法获取,则为空。
注意:不能使用无痕配置请求图标。
此功能是在Qt 6.2中引入的。
另请参阅:requestIconForPageURL()。
[since 6.2]
void QWebEngineProfile::requestIconForPageURL(const QUrl &url, int desiredSizeInPixel, std::function<void (const QIcon &, const QUrl &, const QUrl &)> iconAvailableCallback) const
从具有此配置文件的数据库中请求以前加载的页面的图标。每个配置文件都有自己的图标数据库,并且它存储在持久存储中,因此即使没有网络连接也可以访问存储的图标。图标必须已经被加载才能存储在数据库中。
url指定请求图标的页面的URL。如果存在多个可用的图标,则返回与desiredSizeInPixel最接近的图标。结果图标会调整到desiredSizeInPixel大小。如果desiredSizeInPixel为0,则返回最大的可用图标。
这个函数是异步的,结果通过iconAvailableCallback返回。如果在请求图标时进行调用,则回调会被调用。如果请求的图标可用,第一个参数(类型为QIcon)是结果。否则,它为null。
第二个参数存储请求图标的URL。如果图标无法获取,则为空。
第三个参数存储了分配图标的页面的URL。
注意:不能使用无痕配置请求图标。
此功能是在Qt 6.2中引入的。
另请参阅:requestIconForIconURL()。
QWebEngineScriptCollection *QWebEngineProfile::scripts() const
返回注入到共享此配置文件的所有页面中的脚本集合。
另请参阅:QWebEngineScriptCollection、QWebEngineScript、QWebEnginePage::scripts()和脚本注入。
void QWebEngineProfile::setCachePath(const QString &path)
覆写用于磁盘缓存的默认路径,将其设置为path。
如果设置为空字符串,则恢复默认路径。
另请参阅:cachePath()。
void QWebEngineProfile::setDownloadPath(const QString &path)
覆写用于下载位置的默认路径,将其设置为path。
如果设置为空字符串,则恢复默认路径。
另请参阅:downloadPath()。
void QWebEngineProfile::setHttpAcceptLanguage(const QString &httpAcceptLanguage)
将 Accept-Language HTTP 请求头字段的值设置为 httpAcceptLanguage。
另请参阅 httpAcceptLanguage。
void QWebEngineProfile::setHttpCacheMaximumSize(int maxSize)
将 HTTP 缓存的尺寸设置为 maxSize 字节。
设置为 0
则由 QtWebEngine 自动控制尺寸。
另请参阅 httpCacheMaximumSize 和 setHttpCacheType。
void QWebEngineProfile::setHttpCacheType(QWebEngineProfile::HttpCacheType httpCacheType)
将 HTTP 缓存类型设置为 httpCacheType。
注意:将 httpCacheType 设置为 NoCache 不触发移除已缓存条目。
另请参阅 httpCacheType、setCachePath 和 clearHttpCache。
void QWebEngineProfile::setHttpUserAgent(const QString &userAgent)
覆盖默认的用户代理字符串,设置为 userAgent。
另请参阅 httpUserAgent。
void QWebEngineProfile::setNotificationPresenter(std::function<void (std::unique_ptr<QWebEngineNotification>)> notificationPresenter)
将函数 notificationPresenter 设置为负责显示已发送的提示。
另请参阅 QWebEngineNotification。
void QWebEngineProfile::setPersistentCookiesPolicy(QWebEngineProfile::PersistentCookiesPolicy newPersistentCookiesPolicy)
将持久性Cookies的策略设置为 newPersistentCookiesPolicy。
另请参阅 persistentCookiesPolicy。
void QWebEngineProfile::setPersistentStoragePath(const QString &path)
覆盖用于存储持久Web引擎数据的默认路径。
如果 path 设置为空字符串,则恢复默认路径。
另请参阅 persistentStoragePath。
[自6.5起]
void QWebEngineProfile::setPushServiceEnabled(bool enable)
如果 enable 是 true
,则启用推送消息服务,否则禁用它。
注意:Qt WebEngine 使用 Firebase Cloud Messaging (FCM) 作为浏览器推送服务。因此,所有推送消息将通过 Google 推送服务及其对应的服务器。
此功能是在Qt 6.5中引入的。
另请参阅 isPushServiceEnabled。
void QWebEngineProfile::setSpellCheckEnabled(bool enable)
如果 enable 是 true
,则启用拼写检查,否则禁用它。
另请参阅 isSpellCheckEnabled。
void QWebEngineProfile::setSpellCheckLanguages(const QStringList &languages)
设置拼写检查器的当前语言列表。每种语言应与.bdic
词典的名称匹配。例如,语言en-US
将加载en-US.bdic
词典文件。
有关词典文件搜索方式的详细信息,请参阅拼写检查器功能文档。
有关编译.bdic
词典的更多信息,请参阅拼写检查器示例。
另请参阅spellCheckLanguages。
void QWebEngineProfile::setUrlRequestInterceptor(QWebEngineUrlRequestInterceptor *interceptor)
注册一个请求拦截器单例interceptor以拦截URL请求。
配置文件不获取指针所有权。
另请参阅QWebEngineUrlRequestInfo和QWebEngineUrlRequestInterceptor。
QWebEngineSettings *QWebEngineProfile::settings() const
返回此配置文件中所有页面的默认设置。
QStringList QWebEngineProfile::spellCheckLanguages() const
返回拼写检查器使用的语言列表。
QString QWebEngineProfile::storageName() const
返回配置文件的存储名称。
存储名称用于为使用磁盘的每个配置文件提供独立的数据和缓存子目录。
const QWebEngineUrlSchemeHandler *QWebEngineProfile::urlSchemeHandler(const QByteArray &scheme) const
返回为URL方案scheme注册的自定义URL方案处理器。
bool QWebEngineProfile::visitedLinksContainsUrl(const QUrl &url) const
如果url被此配置文件视为已访问链接,则返回true
。
© 2024 Qt公司。此处包含的文档贡献的版权归其各自所有者。此处提供的文档是根据自由软件基金会发布的GNU自由文档许可证版本1.3的条款许可的。Qt及其标志是芬兰的Qt公司及/或世界其他国家的商标。所有其他商标均为其各自所有者的财产。