PySide6.QtWebEngineCore.QWebEngineProfile

class QWebEngineProfile

QWebEngineProfile 类提供了一个由多个页面共享的网页引擎配置文件。更多

PySide6.QtWebEngineCore.QWebEngineProfile 的继承图

概要

方法

信号

静态函数

注意

本文档可能包含从C++自动翻译到Python的代码片段。我们始终欢迎对代码片段翻译的贡献。如果您发现翻译问题,您也可以通过在我们的https:/bugreports.qt.io/projects/PYSIDE上创建工单来告知我们。

详细描述

一个网页引擎配置文件包含设置、脚本、持久性cookie策略以及属于该配置文件的所有网页引擎页面共享的访问链接列表。

属于该配置文件的所有页面共享一个共同的QWebEngineSettings实例,可以通过settings()方法访问。同样,scripts()方法提供了对共同QWebEngineScriptCollection实例的访问。

关于访问过的链接的信息与持久性cookie和其他持久性数据一起存储在由storageName()返回的存储中。持久性数据存储在通过调用setPersistentStoragePath()设置的子目录中,缓存位于通过调用setCachePath()设置的子目录中。缓存类型可以通过调用setHttpCacheType()设置为内存中磁盘上。如果只设置了存储名称,子目录将自动创建并命名。如果您手动设置任何值,应在创建属于配置文件的任何页面之前进行。

可以通过调用clearVisitedLinks()clearAllVisitedLinks()来清除缓存中的链接。PersistentCookiesPolicy描述了会话和持久性cookie是否保存到内存或磁盘并从内存或磁盘恢复。

配置文件可以用来隔离页面。一个典型的用例是为隐私浏览模式创建一个专用的无记录配置文件。使用QWebEngineProfile()而不定义存储名称会构建一个新的无记录配置文件,该配置文件不会在本地机器上留下任何记录,并且没有持久数据或缓存。isOffTheRecord()方法可以用来检查配置文件是否为无记录。

默认配置文件可以通过defaultProfile()访问。它是一个内置的配置文件,所有未特别使用其他配置文件创建的网页都属于此配置文件。

实现QWebEngineUrlRequestInterceptor接口并通过setUrlRequestInterceptor()在配置文件上注册拦截器,可以在URL请求(QWebEngineUrlRequestInfo)到达Chromium的网络堆栈之前拦截、阻止和修改它们。

可以通过installUrlSchemeHandler()为配置文件注册一个QWebEngineUrlSchemeHandler,以添加对自定义URL方案的支持。然后,对该方案的请求将作为QWebEngineUrlRequestJob对象发送到requestStarted()

可以通过使用setSpellCheckEnabled()方法为每个配置文件启用HTML表单字段的拼写检查,并且可以通过使用setSpellCheckLanguages()方法设置当前用于拼写检查的语言。

class HttpCacheType

此枚举描述了HTTP缓存类型:

常量

描述

QWebEngineProfile.MemoryHttpCache

使用内存缓存。如果设置了off-the-record,这是默认设置。

QWebEngineProfile.DiskHttpCache

使用磁盘缓存。如果配置文件不是off-the-record,这是默认设置。如果在off-the-record配置文件上设置,将改为设置MemoryHttpCache

QWebEngineProfile.NoCache

禁用内存和磁盘缓存。(在 Qt 5.7 中添加)

class PersistentCookiesPolicy

此枚举描述了cookie持久性的策略:

常量

描述

QWebEngineProfile.NoPersistentCookies

会话和持久性cookie都存储在内存中。如果设置了off-the-record或没有可用的持久数据路径,这是唯一可能的设置。

QWebEngineProfile.AllowPersistentCookies

标记为持久的Cookies会被保存到磁盘并从磁盘恢复,而会话Cookies仅存储在磁盘上用于崩溃恢复。这是默认设置。

QWebEngineProfile.ForcePersistentCookies

会话和持久性 cookie 都会保存到磁盘并从磁盘恢复。

class PersistentPermissionsPolicy

此枚举描述了权限持久化的策略:

常量

描述

QWebEngineProfile.PersistentPermissionsPolicy.AskEveryTime

应用程序每次需要权限时都会询问,无论之前是否已经授予过权限。这是为了与现有应用程序向后兼容,否则不推荐使用。

QWebEngineProfile.PersistentPermissionsPolicy.StoreInMemory

只有在第一次需要权限时才会发出请求。任何后续请求将根据初始用户选择自动批准或拒绝。这将延续到使用相同QWebEngineProfile实例的所有页面,直到应用程序关闭。如果设置了off-the-record或没有可用的持久数据路径,则应用此设置。

QWebEngineProfile.PersistentPermissionsPolicy.StoreOnDisk

StoreInMemory的工作方式相同,但权限会保存到磁盘并从磁盘恢复。这是默认设置。

在版本6.8中添加。

__init__([parent=None])
Parameters:

父对象QObject

使用父级 parent 构建一个新的脱机配置文件。

一个不记录的配置文件不会在本地机器上留下任何记录,也没有持久的数据或缓存。因此,HTTP缓存只能在内存中,而cookie只能是非持久的。尝试更改这些设置将不会产生任何效果。

另请参阅

isOffTheRecord()

__init__(name[, parent=None])
Parameters:

使用存储名称 storageName 和父级 parent 构建一个新的配置文件。

存储名称必须是唯一的。

基于磁盘的QWebEngineProfile应在应用程序退出时或之前销毁,否则缓存和持久数据可能无法完全刷新到磁盘。

另请参阅

storageName()

cachePath()
Return type:

字符串

返回用于缓存的路径。

默认情况下,这是在StandardPaths::CacheLocation下的一个特定于QtWebengine/StorageName的子目录中。

注意

使用 QStandardPaths::writableLocation(QStandardPaths::CacheLocation) 来获取 QStandardPaths::CacheLocation 路径。

清除访问过的链接数据库中的所有链接。

另请参阅

clearVisitedLinks()

clearHttpCache()

删除配置文件的缓存条目。

注意

确保在清除操作进行时不要开始新的导航或任何操作。clearHttpCacheCompleted()信号会通知操作完成。

clearHttpCacheCompleted()

clearHttpCache()操作完成时,会发出此信号。

另请参阅

clearHttpCache()

Parameters:

urls – QUrl 的列表

清除访问链接数据库中的urls链接。

另请参阅

clearAllVisitedLinks()

clientCertificateStore()
Return type:

QWebEngineClientCertificateStore

返回配置文件的客户端证书存储。

clientHints()
Return type:

QWebEngineClientHints

返回与此浏览上下文关联的客户端提示设置。

另请参阅

QWebEngineClientHints

cookieStore()
Return type:

QWebEngineCookieStore

返回此配置文件的cookie存储。

static defaultProfile()
Return type:

QWebEngineProfile

返回默认配置文件。

默认配置文件是离线的。

另请参阅

storageName()

downloadPath()
Return type:

字符串

下载文件存储位置的路径。

注意

默认情况下,下载路径是 QStandardPaths::DownloadLocation。

downloadRequested(download)
Parameters:

下载QWebEngineDownloadRequest

每当触发下载时,都会发出此信号。download参数保存下载的状态。下载必须通过accept()明确接受,否则默认情况下将被取消。下载项由配置文件父级管理。如果未被接受,它将在信号发出后立即被删除。此信号不能与队列连接一起使用。

httpAcceptLanguage()
Return type:

字符串

返回Accept-Language HTTP请求头字段的值。

httpCacheMaximumSize()
Return type:

整数

返回HTTP缓存的最大大小,单位为字节。

如果大小由QtWebEngine自动控制,将返回0

httpCacheType()
Return type:

HttpCacheType

返回使用的HTTP缓存类型。

如果配置文件是离线的,则返回MemoryHttpCache

httpUserAgent()
Return type:

字符串

返回与HTTP一起发送的用户代理字符串,用于识别浏览器。

注意

在Windows 8.1及更新版本上,默认的用户代理将始终报告“Windows NT 6.2”(Windows 8),除非应用程序包含声明支持更新Windows版本的清单。

installUrlSchemeHandler(scheme, handler)
Parameters:

在配置文件中为自定义URL方案scheme注册一个处理程序handler

在应用程序启动时,首先需要使用registerScheme注册方案。

isOffTheRecord()
Return type:

布尔

如果这是一个不会在计算机上留下记录的隐身配置文件,则返回true

这将强制将cookies和HTTP缓存存储在内存中,同时也强制所有其他通常持久化的数据存储在内存中。

isPushServiceEnabled()
Return type:

布尔

如果推送消息服务已启用,则返回 true

注意

默认情况下,推送消息服务是禁用的。

isSpellCheckEnabled()
Return type:

布尔

如果拼写检查器已启用,则返回true;否则返回false

另请参阅

setSpellCheckEnabled()

listAllPermissions()
Return type:

QWebEnginePermission的列表

返回一个QWebEnginePermission对象的QList,每个对象代表权限存储中当前存在的单个权限。返回的列表包含此配置文件中所有先前授予/拒绝的权限,前提是它们是持久类型的。

注意

当persistentPermissionPolicy()设置为AskEveryTime时,这将返回一个空列表。

listPermissionsForOrigin(securityOrigin)
Parameters:

securityOriginQUrl

Return type:

QWebEnginePermission的列表

返回一个QWebEnginePermission对象的QList,每个对象代表权限存储中当前存在的单个权限。返回的列表包含与此配置文件的特定securityOrigin关联的所有先前授予/拒绝的权限,前提是它们是持久类型的。

注意

由于权限是基于每个源授予的,提供的securityOrigin将被剥离为其源形式,返回的列表将包含该源的所有权限。因此,传递https://www.example.com/some/page.html与仅传递https://www.example.com/是相同的。

注意

当persistentPermissionPolicy()设置为AskEveryTime时,这将返回一个空列表。

listPermissionsForPermissionType(permissionType)
Parameters:

permissionTypePermissionType

Return type:

QWebEnginePermission的列表

返回一个QWebEnginePermission对象的QList,每个对象代表权限存储中当前存在的单个权限。返回的列表包含提供的permissionType的所有先前授予/拒绝的权限。如果permissionType是非持久的,列表将为空。

注意

当persistentPermissionPolicy()设置为AskEveryTime时,这将返回一个空列表。

persistentCookiesPolicy()
Return type:

PersistentCookiesPolicy

返回当前持久性cookie的策略。

如果配置文件是离线的,NoPersistentCookies 将被返回。

persistentPermissionsPolicy()
Return type:

PersistentPermissionsPolicy

返回当前持久权限的策略。

非记录配置文件不允许将数据保存到磁盘,因此它们只能返回StoreInMemoryAskEveryTime

persistentStoragePath()
Return type:

字符串

返回用于存储浏览器和网页内容持久化数据的路径。

持久数据包括持久性cookies、HTML5本地存储和访问过的链接。

默认情况下,这是在 QtWebengine/StorageName 特定子目录下的 QStandardPaths::DataLocation 下面。

注意

使用 QStandardPaths::writableLocation(QStandardPaths::DataLocation) 来获取 QStandardPaths::DataLocation 路径。

queryPermission(securityOrigin, permissionType)
Parameters:
Return type:

QWebEnginePermission

返回一个与提供的securityOriginpermissionType对应的单个权限的QWebEnginePermission对象。该对象可用于查询权限的当前状态,或更改它。权限不需要已经存在;如果已知某个网站会使用该权限,返回的对象也可用于预先授予权限。

您可以使用此功能预先授予非持久类型的权限。这样做将使权限保持在授予(或拒绝)状态,直到下次具有相关来源的网站请求它为止。届时,权限的生命周期将与特定网页的生命周期绑定,离开页面将使权限失效。

removeAllUrlSchemeHandlers()

移除配置文件中安装的所有自定义URL方案处理程序。

removeUrlScheme(scheme)
Parameters:

方案QByteArray

从配置文件中移除自定义URL方案 scheme

removeUrlSchemeHandler(handler)
Parameters:

handlerQWebEngineUrlSchemeHandler

从配置文件中移除自定义URL方案处理程序 handler

另请参阅

removeUrlScheme()

scripts()
Return type:

QWebEngineScriptCollection

返回注入到共享此配置文件的所有页面中的脚本集合。

setCachePath(path)
Parameters:

路径 – 字符串

覆盖用于磁盘缓存的默认路径,将其设置为path

如果设置为空字符串,则恢复默认路径。

另请参阅

cachePath()

setDownloadPath(path)
Parameters:

路径 – 字符串

覆盖用于下载位置的默认路径,将其设置为path

如果设置为空字符串,则恢复默认路径。

另请参阅

downloadPath()

setHttpAcceptLanguage(httpAcceptLanguage)
Parameters:

httpAcceptLanguage – str

将Accept-Language HTTP请求头字段的值设置为httpAcceptLanguage

另请参阅

httpAcceptLanguage()

setHttpCacheMaximumSize(maxSize)
Parameters:

maxSize – int

将HTTP缓存的最大大小设置为maxSize字节。

将其设置为 0 意味着大小将由 QtWebEngine 自动控制。

setHttpCacheType(httpCacheType)
Parameters:

httpCacheTypeHttpCacheType

将HTTP缓存类型设置为httpCacheType

注意

在已经有一些缓存条目的配置文件上,将httpCacheType设置为NoCache不会触发这些条目的移除。

setHttpUserAgent(userAgent)
Parameters:

userAgent – str

覆盖默认的用户代理字符串,将其设置为userAgent

另请参阅

httpUserAgent()

setNotificationPresenter(notificationPresenter)
Parameters:

notificationPresenterPyCallable

setPersistentCookiesPolicy(newPersistentCookiesPolicy)
Parameters:

newPersistentCookiesPolicyPersistentCookiesPolicy

将持久性cookie的策略设置为newPersistentCookiesPolicy

setPersistentPermissionsPolicy(newPersistentPermissionsPolicy)
Parameters:

newPersistentPermissionsPolicyPersistentPermissionsPolicy

将持久权限的策略设置为newPersistentPermissionsPolicy

setPersistentStoragePath(path)
Parameters:

路径 – 字符串

覆盖用于存储持久化Web引擎数据的默认路径。

如果 path 设置为空字符串,则恢复默认路径。

setPushServiceEnabled(enabled)
Parameters:

enabled – 布尔值

如果enabletrue,则启用推送消息服务,否则禁用它。

注意

Qt WebEngine 使用 Firebase Cloud Messaging (FCM) 作为浏览器推送服务。因此,所有推送消息都将通过 Google 推送服务及其相应的服务器。

另请参阅

isPushServiceEnabled()

setSpellCheckEnabled(enabled)
Parameters:

enabled – 布尔值

如果 enabletrue,则启用拼写检查器,否则禁用它。

另请参阅

isSpellCheckEnabled()

setSpellCheckLanguages(languages)
Parameters:

语言 – 字符串列表

设置拼写检查器的当前语言列表。每种语言应与.bdic字典的名称匹配。例如,语言en-US将加载en-US.bdic字典文件。

请参阅拼写检查器功能文档了解如何搜索字典文件。

有关如何编译.bdic词典的更多信息,请参阅拼写检查器示例

另请参阅

spellCheckLanguages()

setUrlRequestInterceptor(interceptor)
Parameters:

拦截器QWebEngineUrlRequestInterceptor

注册一个请求拦截器单例 interceptor 以拦截URL请求。

配置文件不拥有指针的所有权。

settings()
Return type:

QWebEngineSettings

返回此配置文件中所有页面的默认设置。

spellCheckLanguages()
Return type:

字符串列表

返回拼写检查器使用的语言列表。

storageName()
Return type:

字符串

返回配置文件的存储名称。

存储名称用于为每个使用磁盘的配置文件提供单独的持久化数据和缓存的子目录。

urlSchemeHandler(scheme)
Parameters:

方案QByteArray

Return type:

QWebEngineUrlSchemeHandler

返回为URL方案scheme注册的自定义URL方案处理程序。

visitedLinksContainsUrl(url)
Parameters:

urlQUrl

Return type:

布尔

如果 url 被此配置文件视为已访问的链接,则返回 true