webEnginePermission QML Value Type

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

Import Statement: import QtWebEngine
Since: Qt 6.8
In C++: QWebEnginePermission

属性

方法

详细说明

典型的使用模式如下:

  1. 网站请求特定功能,触发WebEngineView::permissionRequested 信号;
  2. 信号处理器触发提示,询问用户是否同意授予权限;
  3. 当用户做出决定后,应用程序调用grant() 或deny() ;

另外,有意修改已授予权限的应用程序可以使用WebEngineProfile::listAllPermissions() 获取与配置文件相关的现有权限列表,或使用WebEngineProfile::queryPermission() 获取特定权限的 webEnginePermission 对象。

origin 属性可用于查询 WebEnginePermission 与哪个起源相关联,而permissionType 属性则描述了相关功能。网站来源是其方案、主机名和端口的组合。权限是按起源授予的;因此,如果网页https://www.example.com:12345/some/page.html 请求一个权限,它将被授予给起源https://www.example.com:12345/

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

持久权限存储在活动的WebEngineProfile 中,其生命周期取决于WebEngineProfile::persistentPermissionsPolicy 的值。默认情况下,已命名的配置文件将权限存储在磁盘上,而未记录的配置文件将权限存储在内存中(并在销毁配置文件时销毁)。存储的权限在下一次网站请求时不会询问用户,而是根据用户最初选择的分辨率自动授予或拒绝。要删除存储的权限,可调用reset() 删除。

另一方面,非持久权限只有在相关的WebEngineView 执行导航到不同的 URL 或被销毁时才能使用。

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

另请参阅 WebEngineView::permissionRequestedWebEngineProfile::queryPermission() 和WebEngineProfile::listAllPermissions()。

属性文档

isValid : bool [read-only]

表示更改权限状态的尝试是否成功。

无效的webEnginePermission 是指

另请参阅 isPersistent


origin : url [read-only]

权限相关来源的 URL。

网站来源是其方案、主机名和端口的组合。权限是按来源授予的;因此,如果网页https://www.example.com:12345/some/page.html 请求权限,则会授予来源https://www.example.com:12345/


permissionType : enumeration [read-only]

与该权限相关的权限类型。

常量说明
WebEnginePermission.MediaAudioCapture访问麦克风或其他音源的权限。该权限具有持久性。
WebEnginePermission.MediaVideoCapture访问网络摄像头或其他视频源。此权限具有持久性。
WebEnginePermission.MediaAudioVideoCaptureMediaAudioCaptureMediaVideoCapture 的组合。此权限具有持久性。
WebEnginePermission.DesktopVideoCapture访问用户屏幕内容。此权限具有持久性。
WebEnginePermission.DesktopAudioVideoCapture访问用户屏幕内容和应用程序音频。此权限具有持久性。
WebEnginePermission.Notifications允许网站向用户发送通知。此权限具有持久性。
WebEnginePermission.Geolocation访问用户的物理位置。此权限具有持久性。
WebEnginePermission.ClipboardReadWrite访问用户的剪贴板。此权限具有持久性。
WebEnginePermission.LocalFontsAccess访问用户计算机上安装的字体。仅适用于台式机。此权限具有持久性。
WebEnginePermission.Unsupported不支持的功能类型。

注意: 非持久性权限类型不会被底层存储记住,每次网站尝试使用时都会触发权限请求。


state : enumeration [read-only]

权限的当前状态。

常量说明
WebEnginePermission.Invalid对象处于无效状态,任何修改所述权限的尝试都将失败。
WebEnginePermission.Ask要么该权限之前未被申请过,要么permissionType 不是持久性的。
WebEnginePermission.Granted已授予权限。
WebEnginePermission.Denied权限已被拒绝。

如果指定的permissionTypeorigin 的权限已被授予或拒绝,则返回值分别为 WebEnginePermission.Granted 或 WebEnginePermission.Denied。如果是第一次请求权限,返回值为 WebEnginePermission.Ask。如果对象处于无效状态,返回值为 WebEnginePermission.Invalid。

另请参阅 isValidisPersistent


方法文档

void deny()

阻止相关起源访问请求的功能。当isValid 的值为 false 时,不执行任何操作。

另请参阅 grant,reset, 和isValid


void grant()

允许关联源访问请求的每项功能。当isValid 的值为 false 时不起作用。

另请参阅 deny,reset, 和isValid


void isPersistent(WebEnginePermission.PermissionType permissionType)

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


void reset()

从配置文件的底层存储中删除权限。默认情况下,权限存储在磁盘上(记录外配置文件除外,权限存储在内存中,并随配置文件一起销毁)。这意味着已经授予/拒绝的权限不会被请求两次,而是会在以后每次网站请求时自动授予/拒绝。调用 reset() 可以在下一次网站请求时再次显示查询。

isValid 的值为 false 时不起作用。

另请参阅 grant,deny,isValidWebEngineProfile::persistentPermissionsPolicy


© 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.