QWebEngineUrlScheme Class

Die Klasse QWebEngineUrlScheme konfiguriert ein eigenes URL-Schema. Mehr...

Kopfzeile: #include <QWebEngineUrlScheme>
CMake: find_package(Qt6 REQUIRED COMPONENTS WebEngineCore)
target_link_libraries(mytarget PRIVATE Qt6::WebEngineCore)
qmake: QT += webenginecore

Öffentliche Typen

enum Flag { SecureScheme, LocalScheme, LocalAccessAllowed, NoAccessAllowed, ServiceWorkersAllowed, …, FetchApiAllowed }
flags Flags
enum SpecialPort { PortUnspecified }
enum class Syntax { HostPortAndUserInformation, HostAndPort, Host, Path }

Öffentliche Funktionen

QWebEngineUrlScheme()
QWebEngineUrlScheme(const QByteArray &name)
QWebEngineUrlScheme(const QWebEngineUrlScheme &that)
QWebEngineUrlScheme(QWebEngineUrlScheme &&that)
~QWebEngineUrlScheme()
int defaultPort() const
QWebEngineUrlScheme::Flags flags() const
QByteArray name() const
void setDefaultPort(int newValue)
void setFlags(QWebEngineUrlScheme::Flags newValue)
void setName(const QByteArray &newValue)
void setSyntax(QWebEngineUrlScheme::Syntax newValue)
QWebEngineUrlScheme::Syntax syntax() const
bool operator!=(const QWebEngineUrlScheme &that) const
QWebEngineUrlScheme &operator=(QWebEngineUrlScheme &&that)
QWebEngineUrlScheme &operator=(const QWebEngineUrlScheme &that)
bool operator==(const QWebEngineUrlScheme &that) const

Statische öffentliche Mitglieder

void registerScheme(const QWebEngineUrlScheme &scheme)
QWebEngineUrlScheme schemeByName(const QByteArray &name)

Detaillierte Beschreibung

Ein Web-Engine-URL-Schema beschreibt ein URL-Schema aus der Sicht der Web-Engine und gibt an, wie URLs dieses Schemas geparst werden sollen und welche Sicherheitseinschränkungen für Ressourcen gelten sollen, die von solchen URLs stammen.

Benutzerdefinierte URL-Schemata müssen bereits beim Start der Anwendung konfiguriert werden, bevor irgendwelche Qt WebEngine Klassen erstellt werden. Im Allgemeinen bedeutet dies, dass die Schemata konfiguriert werden müssen, bevor eine QGuiApplication oder QApplication Instanz erstellt wird.

Jede registrierte Schemakonfiguration gilt global für alle Profile.

int main(int argc, char **argv)
{
    QWebEngineUrlScheme scheme("myscheme");
    scheme.setSyntax(QWebEngineUrlScheme::Syntax::HostAndPort);
    scheme.setDefaultPort(2345);
    scheme.setFlags(QWebEngineUrlScheme::SecureScheme);
    QWebEngineUrlScheme::registerScheme(scheme);
    ...
}

Um das benutzerdefinierte URL-Schema tatsächlich zu verwenden, muss ein QWebEngineUrlSchemeHandler erstellt und in einem Profil registriert werden.

Siehe auch QWebEngineUrlSchemeHandler.

Member Typ Dokumentation

enum QWebEngineUrlScheme::Flag
flags QWebEngineUrlScheme::Flags

Dieser Enum-Typ spezifiziert Sicherheitsoptionen, die für ein URL-Schema gelten sollen.

KonstanteWertBeschreibung
QWebEngineUrlScheme::SecureScheme0x1Zeigt an, dass das URL-Schema potentiell vertrauenswürdig ist. Dieses Kennzeichen sollte nur auf URL-Schemata angewendet werden, die die Authentizität, Vertraulichkeit und Integrität der Daten entweder durch Verschlüsselung oder andere Mittel sicherstellen. Beispiele für sichere eingebaute Schemata sind https (authentifiziert und verschlüsselt) und qrc (nur lokale Ressourcen), während http ein Beispiel für ein unsicheres Schema ist.
QWebEngineUrlScheme::LocalScheme0x2Zeigt an, dass das URL-Schema den Zugriff auf lokale Ressourcen ermöglicht. Mit diesem Kennzeichen soll verhindert werden, dass Netzwerkinhalte auf lokale Ressourcen zugreifen. Nur Schemata mit dem LocalAccessAllowed -Flag können Ressourcen aus einem Schema mit dem LocalScheme -Flag laden. Das einzige eingebaute Schema mit diesem Flag ist file.
QWebEngineUrlScheme::LocalAccessAllowed0x4Zeigt an, dass Inhalte aus diesem Schema Ressourcen aus Schemata mit dem LocalScheme Flag laden dürfen.
QWebEngineUrlScheme::NoAccessAllowed0x8Zeigt an, dass alle Inhalte aus diesem Schema gezwungen werden sollen, eindeutige undurchsichtige Ursprünge zu haben: keine zwei Ressourcen werden den gleichen Ursprung haben.
QWebEngineUrlScheme::ServiceWorkersAllowed0x10Zeigt an, dass die Service Workers API aktiviert sein sollte.
QWebEngineUrlScheme::ViewSourceAllowed0x20Zeigt an, dass die Funktion View Source aktiviert sein sollte.
QWebEngineUrlScheme::ContentSecurityPolicyIgnored0x40Zeigt an, dass Zugriffe auf dieses Schema alle Content-Security-Policy-Prüfungen umgehen sollten.
QWebEngineUrlScheme::CorsEnabled0x80Aktiviert das Cross-Origin Resource Sharing (CORS) für dieses Schema. Dieses Flag ist erforderlich, damit Inhalte von Dokumenten anderer Herkunft geladen werden können, einschließlich des Zugriffs von anderen Schemata. Die entsprechenden CORS-Header werden automatisch von der Klasse QWebEngineUrlRequestJob generiert. Standardmäßig sind nur http und https CORS-aktiviert. (Hinzugefügt in Qt 5.14)
QWebEngineUrlScheme::FetchApiAllowed (since Qt 6.6)0x100Ermöglicht die Verwendung eines URL-Schemas durch die HTML5-Fetch-API und XMLHttpRequest.send mit einem Body. Standardmäßig können nur http und https mit der Fetch-API oder mit einem XMLHttpRequest mit einem Body gesendet werden.

Der Typ Flags ist ein Typedef für QFlags<Flag>. Er speichert eine ODER-Kombination von Flag-Werten.

enum QWebEngineUrlScheme::SpecialPort

Dieser Enum-Typ definiert spezielle Werte für defaultPort.

KonstanteWertBeschreibung
QWebEngineUrlScheme::PortUnspecified-1Gibt an, dass das URL-Schema kein Port-Element enthält.

enum class QWebEngineUrlScheme::Syntax

Dieser Enum-Typ listet die Typen der URL-Syntax auf.

Um die Same-Origin-Policy auf ein benutzerdefiniertes URL-Schema anzuwenden, muss WebEngine in der Lage sein, den Ursprung (Host- und Port-Kombination) einer URL zu berechnen. Die Optionen Host... zeigen an, dass das URL-Schema der Standard-URL-Syntax entspricht (wie http) und aktivieren automatisch die Same-Origin-Richtlinie. Die Option Path zeigt an, dass das URL-Schema eine Nicht-Standard-Syntax verwendet und dass die Same-Origin-Policy nicht angewendet werden kann.

KonstanteWertBeschreibung
QWebEngineUrlScheme::Syntax::HostPortAndUserInformation0Die Autoritätskomponente einer URL dieses Typs hat alle Standardelemente: Host, Port, Benutzername und Passwort. Bei einer URL ohne Port wird defaultPort verwendet (das nicht PortUnspecified sein darf ).
QWebEngineUrlScheme::Syntax::HostAndPort1Die Autoritätskomponente einer URL dieses Typs besteht nur aus den Elementen host und port. Für eine URL ohne Port wird defaultPort verwendet (das nicht PortUnspecified sein darf ).
QWebEngineUrlScheme::Syntax::Host2Die Autoritätskomponente einer URL dieses Typs besteht nur aus dem Host-Teil und keinem Port. Der defaultPort muss auf PortUnspecified gesetzt werden.
QWebEngineUrlScheme::Syntax::Path3Eine URL dieses Typs hat überhaupt keine Autoritätskomponente. Alles nach dem Schemanamen und dem Trennzeichen (:) wird ohne Validierung oder Kanonisierung beibehalten. Alle URLs eines solchen Schemas werden als von derselben Herkunft betrachtet (es sei denn, das NoAccessAllowed Flag wird verwendet).

Dokumentation der Mitgliedsfunktionen

QWebEngineUrlScheme::QWebEngineUrlScheme()

Konstruiert ein Web-Engine-URL-Schema mit Standardwerten.

[explicit] QWebEngineUrlScheme::QWebEngineUrlScheme(const QByteArray &name)

Konstruiert ein Web-Engine-URL-Schema mit dem angegebenen name.

QWebEngineUrlScheme::QWebEngineUrlScheme(const QWebEngineUrlScheme &that)

Kopien that.

QWebEngineUrlScheme::QWebEngineUrlScheme(QWebEngineUrlScheme &&that)

Bewegt sich that.

[noexcept] QWebEngineUrlScheme::~QWebEngineUrlScheme()

Zerstört dieses Objekt.

int QWebEngineUrlScheme::defaultPort() const

Gibt den Standardport dieses URL-Schemas zurück.

Der Standardwert ist PortUnspecified.

Siehe auch setDefaultPort().

QWebEngineUrlScheme::Flags QWebEngineUrlScheme::flags() const

Gibt die Flags für dieses URL-Schema zurück.

Der Standardwert ist ein leerer Satz von Flags.

Siehe auch Flags und setFlags().

QByteArray QWebEngineUrlScheme::name() const

Gibt den Namen dieses URL-Schemas zurück.

Der Standardwert ist eine leere Zeichenkette.

Siehe auch setName().

[static] void QWebEngineUrlScheme::registerScheme(const QWebEngineUrlScheme &scheme)

Registriert scheme mit dem URL-Parser und dem Sicherheitsmodell der Web-Engine.

Es wird empfohlen, dass alle benutzerdefinierten URL-Schemata beim Start der Anwendung zuerst mit dieser Funktion registriert werden, auch wenn die Standardoptionen verwendet werden sollen.

Warnung: Diese Funktion muss früh beim Start der Anwendung aufgerufen werden, bevor irgendwelche WebEngine Klassen erstellt werden. Späte Aufrufe werden ignoriert.

Siehe auch schemeByName().

[static] QWebEngineUrlScheme QWebEngineUrlScheme::schemeByName(const QByteArray &name)

Gibt das URL-Schema der Web-Engine mit dem angegebenen name oder das standardmäßig erstellte Schema zurück.

Siehe auch registerScheme().

void QWebEngineUrlScheme::setDefaultPort(int newValue)

Setzt den Standardport dieses URL-Schemas auf newValue.

Siehe auch defaultPort().

void QWebEngineUrlScheme::setFlags(QWebEngineUrlScheme::Flags newValue)

Setzt die Flags für dieses URL-Schema auf newValue.

Siehe auch Flags und flags().

void QWebEngineUrlScheme::setName(const QByteArray &newValue)

Setzt den Namen dieses URL-Schemas auf newValue.

Hinweis: Der Name wird automatisch in Kleinbuchstaben umgewandelt.

Siehe auch name().

void QWebEngineUrlScheme::setSyntax(QWebEngineUrlScheme::Syntax newValue)

Setzt den Syntaxtyp dieses URL-Schemas auf newValue.

Siehe auch Syntax und syntax().

QWebEngineUrlScheme::Syntax QWebEngineUrlScheme::syntax() const

Gibt den Syntaxtyp dieses URL-Schemas zurück.

Der Standardwert ist Path.

Siehe auch Syntax und setSyntax().

bool QWebEngineUrlScheme::operator!=(const QWebEngineUrlScheme &that) const

Gibt true zurück, wenn dieses und that Objekt nicht gleich sind.

QWebEngineUrlScheme &QWebEngineUrlScheme::operator=(QWebEngineUrlScheme &&that)

Bewegt sich that.

QWebEngineUrlScheme &QWebEngineUrlScheme::operator=(const QWebEngineUrlScheme &that)

Kopien that.

bool QWebEngineUrlScheme::operator==(const QWebEngineUrlScheme &that) const

Gibt true zurück, wenn dieses und that Objekt gleich sind.

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