QWebEnginePermission Class
Un QWebEnginePermission es un objeto utilizado para acceder y modificar el estado de un único permiso que ha sido concedido o denegado a una URL de origen específica. Más...
| Cabecera: | #include <QWebEnginePermission> |
| CMake: | find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore) |
| qmake: | QT += webenginecore |
| Desde: | Qt 6.8 |
| En QML: | webEnginePermission |
Tipos Públicos
| enum class | PermissionType { MediaAudioCapture, MediaVideoCapture, MediaAudioVideoCapture, DesktopVideoCapture, DesktopAudioVideoCapture, …, Unsupported } |
| enum class | State { Invalid, Ask, Granted, Denied } |
Propiedades
- isValid : const bool
- origin : const QUrl
- permissionType : const PermissionType
- state : const State
Funciones públicas
| void | deny() const |
| void | grant() const |
| bool | isValid() const |
| QUrl | origin() const |
| QWebEnginePermission::PermissionType | permissionType() const |
| void | reset() const |
| QWebEnginePermission::State | state() const |
Miembros públicos estáticos
| bool | isPersistent(QWebEnginePermission::PermissionType permissionType) |
Descripción detallada
El patrón de uso típico es el siguiente:
- Un sitio web solicita un permiso específico, activando la señal QWebEnginePage::permissionRequested();
- El controlador de la señal lanza una pregunta al usuario sobre si desea conceder el permiso;
- Cuando el usuario ha tomado su decisión, la aplicación llama a grant() o deny();
Alternativamente, una aplicación interesada en modificar permisos ya concedidos puede utilizar QWebEngineProfile::listAllPermissions() para obtener una lista de los permisos existentes asociados a un perfil, o QWebEngineProfile::queryPermission() para obtener un objeto QWebEnginePermission para un permiso específico.
La propiedad origin() puede utilizarse para consultar a qué origen está asociado el QWebEnginePermission, mientras que la propiedad permissionType() describe el tipo de permiso solicitado. El origen de un sitio web es la combinación de su esquema, nombre de host y puerto. Los permisos se conceden por origen; así, si la página web https://www.example.com:12345/some/page.html solicita un permiso, se concederá al origen https://www.example.com:12345/.
QWebEnginePermission::PermissionType describe todos los tipos de permisos que admite Qt WebEngine. Sólo algunos tipos de permisos se recuerdan entre sesiones de navegación; son persistentes. Los permisos no persistentes consultan al usuario cada vez que un sitio web los solicita. Puedes comprobar si un tipo de permiso es persistente en tiempo de ejecución utilizando el método estático QWebEnginePermission::isPersistent().
Los permisos persistentes se almacenan dentro del activo QWebEngineProfile, y su vida útil depende del valor de QWebEngineProfile::persistentPermissionsPolicy(). Por defecto, los perfiles con nombre almacenan sus permisos en disco, mientras que los que no tienen nombre los almacenan en memoria (y los destruyen cuando se destruye el perfil). Un permiso almacenado no se consultará al usuario la próxima vez que un sitio web lo solicite; en su lugar, se concederá o denegará automáticamente, dependiendo de la resolución que el usuario haya elegido inicialmente. Para borrar un permiso almacenado, llame a reset().
Un permiso no persistente, por otro lado, sólo es utilizable hasta que el QWebEnginePage relacionado realice una navegación a una URL diferente, o sea destruido.
Puedes comprobar si un QWebEnginePermission está en un estado válido utilizando su propiedad isValid(). Para los objetos no válidos, las llamadas a grant(), deny() o reset() no harán nada, mientras que las llamadas a state() siempre devolverán QWebEnginePermission::Invalid.
Véase también QWebEnginePage::permissionRequested(), QWebEngineProfile::queryPermission(), y QWebEngineProfile::listAllPermissions().
Documentación de tipos de miembros
enum class QWebEnginePermission::PermissionType
Este tipo enum contiene el tipo de permiso solicitado:
| Constante | Valor | Descripción |
|---|---|---|
QWebEnginePermission::PermissionType::MediaAudioCapture | 1 | Acceso a un micrófono u otra fuente de audio. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::MediaVideoCapture | 2 | Acceso a una cámara web u otra fuente de vídeo. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::MediaAudioVideoCapture | 3 | Combinación de MediaAudioCapture y MediaVideoCapture. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::DesktopVideoCapture | 4 | Acceso al contenido de la pantalla del usuario. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::DesktopAudioVideoCapture | 5 | Acceso al contenido de la pantalla del usuario y al audio de la aplicación. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::MouseLock | 6 | Bloquea el puntero dentro de un elemento de la página web. Este permiso no es persistente. |
QWebEnginePermission::PermissionType::Notifications | 7 | Permite al sitio web enviar notificaciones al usuario. Este permiso es persistente. |
QWebEnginePermission::PermissionType::Geolocation | 8 | Acceso a la ubicación física del usuario. Este permiso es persistente. |
QWebEnginePermission::PermissionType::ClipboardReadWrite | 9 | Acceso al portapapeles del usuario. Este permiso es persistente. |
QWebEnginePermission::PermissionType::LocalFontsAccess | 10 | Acceso a las fuentes instaladas en el equipo del usuario. Sólo disponible en ordenadores de sobremesa. Este permiso es permanente. |
QWebEnginePermission::PermissionType::Unsupported | 0 | Un tipo de permiso no soportado. |
Nota: Los tipos de permisos no persistentes son aquellos que nunca serán recordados por el almacenamiento subyacente, y activarán una solicitud de permiso cada vez que un sitio web intente utilizarlos.
enum class QWebEnginePermission::State
Este tipo enum contiene el estado actual del permiso solicitado:
| Constante | Valor | Descripción |
|---|---|---|
QWebEnginePermission::State::Invalid | 0 | El objeto se encuentra en un estado no válido, y cualquier intento de modificar el permiso descrito fallará. |
QWebEnginePermission::State::Ask | 1 | O bien el permiso no se ha solicitado antes, o bien permissionType() no es persistente. |
QWebEnginePermission::State::Granted | 2 | El permiso ya ha sido concedido. |
QWebEnginePermission::State::Denied | 3 | El permiso ya ha sido denegado. |
Documentación de propiedades
[read-only] isValid : const bool
Indica si los intentos de cambiar el estado del permiso tendrán éxito.
Un QWebEnginePermission inválido es:
- Uno cuyo permissionType() no está soportado;
- Uno cuyo origin() no es válido;
- Uno cuyo perfil asociado ha sido destruido
Funciones de acceso:
| bool | isValid() const |
Véase también isPersistent().
[read-only] origin : const QUrl
Esta propiedad contiene la URL del origen asociado al permiso.
El origen de una página web es la combinación de su esquema, nombre de host y puerto. Los permisos se conceden por origen; así, si la página web https://www.example.com:12345/some/page.html solicita un permiso, éste se concederá al origen https://www.example.com:12345/.
Funciones de acceso:
| QUrl | origin() const |
[read-only] permissionType : const PermissionType
Esta propiedad contiene el tipo de permiso asociado a este permiso.
Funciones de acceso:
| QWebEnginePermission::PermissionType | permissionType() const |
[read-only] state : const State
Esta propiedad contiene el estado actual del permiso.
Si ya se ha concedido o denegado un permiso para los objetos permissionType() y origin() especificados, el valor devuelto es QWebEnginePermission::Granted, o QWebEnginePermission::Denied, respectivamente. Si es la primera vez que se solicita el permiso, el valor devuelto es QWebEnginePermission::Ask. Si el objeto se encuentra en un estado no válido, el valor devuelto es QWebEnginePermission::Invalid.
Funciones de acceso:
| QWebEnginePermission::State | state() const |
Véase también isValid() y isPersistent().
Documentación de las funciones miembro
[invokable] void QWebEnginePermission::deny() const
Impide que el origen asociado acceda a la dirección permissionType solicitada. No hace nada cuando isValid() se evalúa como falso.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también grant(), reset() y isValid().
[invokable] void QWebEnginePermission::grant() const
Permite al origen asociado acceder a la dirección permissionType solicitada. No hace nada cuando isValid() se evalúa como falso.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también deny(), reset() y isValid().
[static invokable] bool QWebEnginePermission::isPersistent(QWebEnginePermission::PermissionType permissionType)
Devuelve si un permissionType es persistente, lo que significa que el estado de un permiso será recordado y el usuario no será consultado la próxima vez que el sitio web solicite el mismo permiso.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
[invokable] void QWebEnginePermission::reset() const
Elimina el permiso del almacenamiento subyacente del perfil. Por defecto, los permisos se almacenan en disco (excepto para los perfiles off-the-record, en los que los permisos se almacenan en memoria y se destruyen con el perfil). Esto significa que un permiso ya concedido/denegado no se solicitará dos veces, sino que se concederá/denegará automáticamente cada vez que un sitio web lo solicite. Llamar a reset() permite que la consulta se muestre de nuevo la próxima vez que el sitio web la solicite.
No hace nada cuando isValid() se evalúa como falso.
Nota: Esta función puede invocarse a través del sistema de metaobjetos y desde QML. Véase Q_INVOKABLE.
Véase también grant(), deny(), isValid(), y QWebEngineProfile::persistentPermissionsPolicy().
© 2026 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.