PySide6.QtWebEngineCore.QWebEnginePermission

class QWebEnginePermission

一个 QWebEnginePermission 是一个用于访问和修改已授予或拒绝特定源URL的单个权限状态的对象。更多

在版本6.8中添加。

概要

属性

方法

静态函数

注意

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

详细描述

典型的使用模式如下:

  1. 一个网站请求特定权限,触发 permissionRequested() 信号;

  2. 信号处理程序触发一个提示,询问用户是否要授予权限;

  3. 当用户做出决定后,应用程序调用 grant()deny() ;

或者,一个对修改已授予权限感兴趣的应用程序可以使用listAllPermissions()来获取与配置文件关联的现有权限列表,或者使用queryPermission()来获取特定权限的QWebEnginePermission对象。

origin() 属性可用于查询 QWebEnginePermission 关联的源,而 permissionType() 属性描述了请求权限的类型。网站源是其方案、主机名和端口的组合。权限是基于每个源授予的;因此,如果网页 https://www.example.com:12345/some/page.html 请求权限,它将授予源 https://www.example.com:12345/

PermissionType 描述了 Qt WebEngine 支持的所有权限类型。只有一些权限类型在浏览会话之间被记住;它们是持久性的。非持久性权限每次网站请求时都会询问用户。您可以在运行时使用静态方法 isPersistent() 检查权限类型是否为持久性。

持久权限存储在活动的QWebEngineProfile中,它们的生命周期取决于persistentPermissionsPolicy()的值。默认情况下,命名配置文件将它们的权限存储在磁盘上,而临时配置文件则将它们存储在内存中(并在配置文件销毁时销毁它们)。存储的权限在下一次网站请求时不会查询用户;相反,它将根据用户最初选择的解决方案自动授予或拒绝。要清除存储的权限,请调用reset()

另一方面,非持久性权限仅在相关的QWebEnginePage导航到不同的URL或被销毁之前可用。

您可以使用isValid()属性检查QWebEnginePermission是否处于有效状态。对于无效对象,调用grant()deny()reset()将不会执行任何操作,而调用state()将始终返回Invalid

class PermissionType

此枚举类型保存请求的权限类型:

常量

描述

QWebEnginePermission.PermissionType.MediaAudioCapture

访问麦克风或其他音频源。此权限是持久的。

QWebEnginePermission.PermissionType.MediaVideoCapture

访问网络摄像头或其他视频源。此权限是持久的。

QWebEnginePermission.PermissionType.MediaAudioVideoCapture

MediaAudioCapture 和 MediaVideoCapture 的组合。此权限是持久的。

QWebEnginePermission.PermissionType.DesktopVideoCapture

访问用户屏幕内容。此权限不是持久的。

QWebEnginePermission.PermissionType.DesktopAudioVideoCapture

访问用户屏幕内容和应用程序音频。此权限是持久的。

QWebEnginePermission.PermissionType.MouseLock

将指针锁定在网页上的元素内。此权限不是持久的。

QWebEnginePermission.PermissionType.Notifications

允许网站向用户发送通知。此权限是持久的。

QWebEnginePermission.PermissionType.Geolocation

访问用户的物理位置。此权限是持久的。

QWebEnginePermission.PermissionType.ClipboardReadWrite

访问用户的剪贴板。此权限是持久的。

QWebEnginePermission.PermissionType.LocalFontsAccess

访问用户机器上安装的字体。仅在桌面上可用。此权限是持久的。

QWebEnginePermission.PermissionType.Unsupported

不支持的权限类型。

注意

非持久性权限类型是指底层存储永远不会记住的权限类型,每次网站尝试使用它们时都会触发权限请求。

class State

此枚举类型保存请求权限的当前状态:

常量

描述

QWebEnginePermission.State.Invalid

对象处于无效状态,任何尝试修改所描述的权限都将失败。

QWebEnginePermission.State.Ask

权限之前未被请求过,或者permissionType()不是持久的。

QWebEnginePermission.State.Granted

权限已被授予。

QWebEnginePermission.State.Denied

权限已被拒绝。

注意

当使用from __feature__ import true_property时,属性可以直接使用,否则通过访问器函数使用。

property isValidᅟ: bool

此属性指示尝试更改权限状态是否将成功。

无效的 QWebEnginePermission 可能是以下情况之一:

另请参阅

isPersistent()

Access functions:
property originᅟ: QUrl

此属性保存权限关联源的URL。

网站源是其方案、主机名和端口的组合。权限是基于每个源授予的;因此,如果网页 https://www.example.com:12345/some/page.html 请求权限,它将被授予源 https://www.example.com:12345/

Access functions:
property permissionTypeᅟ: QWebEnginePermission.PermissionType

此属性保存与此权限关联的权限类型。

Access functions:
property stateᅟ: QWebEnginePermission.State

此属性保存权限的当前状态。

如果已经授予或拒绝了指定的permissionType()origin()的权限,则返回值分别为GrantedDenied。当这是第一次请求权限时,返回值为Ask。如果对象处于无效状态,则返回值为Invalid

另请参阅

isValid() isPersistent()

Access functions:
__init__()
__init__(other)
Parameters:

其他QWebEnginePermission

deny()

阻止关联的来源访问请求的permissionType。当isValid()评估为false时,不执行任何操作。

另请参阅

grant() reset() isValid()

grant()

允许关联的来源访问请求的permissionType。当isValid()评估为false时,不执行任何操作。

另请参阅

deny() reset() isValid()

static isPersistent(permissionType)
Parameters:

permissionTypePermissionType

Return type:

布尔

返回一个permissionType是否是持久的,这意味着权限的状态将被记住,并且下次网站请求相同权限时不会再次询问用户。

isValid()
Return type:

布尔

属性 isValidᅟ 的获取器。

__ne__(rhs)
Parameters:

rhsQWebEnginePermission

Return type:

布尔

__eq__(rhs)
Parameters:

rhsQWebEnginePermission

Return type:

布尔

origin()
Return type:

QUrl

属性 originᅟ 的获取器。

permissionType()
Return type:

PermissionType

属性 permissionTypeᅟ 的获取器。

reset()

从配置文件的底层存储中移除权限。默认情况下,权限存储在磁盘上(除了非记录配置文件,其中权限存储在内存中并随配置文件销毁)。这意味着已经授予/拒绝的权限不会被再次请求,但每次网站请求时都会自动授予/拒绝。调用reset()允许在下一次网站请求时再次显示查询。

isValid()评估为false时,不执行任何操作。

state()
Return type:

State

属性 stateᅟ 的获取器。

swap(other)
Parameters:

其他QWebEnginePermission