Bereitstellung von Qt WebEngine Anwendungen
Die Art und Weise, wie Anwendungen verpackt und bereitgestellt werden, unterscheidet sich von Betriebssystem zu Betriebssystem. Für Windows und macOS automatisieren windeployqt und macdeployqt die Schritte zur Erstellung eines eigenständigen Anwendungspakets.
Bei der manuellen Bereitstellung von Anwendungen, die von Qt WebEngine abhängen, müssen alle Dateien, die zur Ausführung der Anwendung erforderlich sind, einbezogen werden: Bibliotheken, QML-Importe, Plugins und Übersetzungen.
Weitere Informationen finden Sie unter Bereitstellen von Qt-Anwendungen.
Zielplattformen
Qt WebEngine versucht, alle Supported Platforms von Qt zu unterstützen. Aufgrund der unterschiedlichen Anforderungen von Chromium ist dies jedoch nicht immer möglich. Bekannte Einschränkungen sind:
- Qt WebEngine Derzeit werden nur Windows, Linux und macOS unterstützt.
- Unter Windows unterstützt Qt WebEngine nur Windows Vista oder eine neuere Version als Zielplattform. Aufgrund der Verwendung einer neueren API in Chromium wird Windows XP nicht unterstützt. WinRT wird ebenfalls nicht unterstützt.
- Unter Windows wird die Visual C++ Redistributable Version 14.28 oder höher benötigt, um Qt WebEngine Anwendungen auszuführen.
Manuelles Bereitstellen von Anwendungen
Bei der manuellen Bereitstellung von Anwendungen, die von Qt WebEngine abhängen, müssen möglicherweise die folgenden Dateien bereitgestellt werden:
- Bibliotheken
- QML-Importe
- Qt WebEngine Prozess
- Ressourcen
- Übersetzungen
- Audio- und Video-Codecs
Bereitstellen von Bibliotheken
Die folgenden Bibliotheken müssen mit Anwendungen bereitgestellt werden, die von Qt WebEngine abhängen:
- QtWebEngineCore Bibliothek
- QtWebEngineWidgets oder QtWebEngine Bibliotheken, je nach Anwendungstyp
Bereitstellen von QML-Importen
Wenn die Qt Quick Integration in der Anwendung verwendet wird, muss das QtWebEngine Importverzeichnis bereitgestellt werden.
Bereitstellen von Qt WebEngine Prozessen
Qt WebEngine macht sich das Multiprozessmodell zunutze, das das Chromium-Projekt bietet. Das Multiprozessmodell erfordert, dass die ausführbare Datei Qt WebEngine Process zusammen mit Ihrer Anwendung bereitgestellt wird.
Der WebEngine Prozess wird für jede QWebEngineView oder WebEngineView Instanz ausgeführt. Bei einer Browser-Anwendung mit zwei geöffneten Registerkarten sollten beispielsweise zwei separate Instanzen des Prozesses ausgeführt werden. Dies ist ein gängiger Ansatz, der von den meisten modernen Web-Engines verwendet wird, um ein stabiles Browsing-Erlebnis zu gewährleisten.
Zur Laufzeit sucht Qt WebEngine nach der ausführbaren Datei QtWebEngineProcess
in dem Verzeichnis, das QLibraryInfo::location(QLibraryInfo::LibraryExecutablesPath) zurückgibt. Bei Qt-Installationen ist dies QTDIR/libexec
(Linux) oder QTDIR\bin
(Windows). Der Pfad kann z.B. durch die Definition einer qt.conf
Datei geändert werden. Alternativ kann ein ausführbarer Pfad als Wert der Umgebungsvariablen QTWEBENGINEPROCESS_PATH
festgelegt werden. Unter macOS sucht Qt WebEngine nach der ausführbaren Datei in .app/Helpers/QtWebEngineProcess
.
Bereitstellen von Ressourcen
Qt WebEngine benötigt die folgenden Ressourcendateien:
qtwebengine_resources.pak
enthält die von Chromium benötigten Ressourcen.qtwebengine_devtools_resources.pak
enthält Werkzeuge für das Remote-Debugging.qtwebengine_resources_100p.pak
enthält Bilder, die für Bildschirme mit niedriger Auflösung geeignet sind.qtwebengine_resources_200p.pak
enthält Bilder, die für Bildschirme mit hohem DPI geeignet sind.icudtl.dat
bietet Unterstützung für International Components for Unicode (ICU). Es ist die Chromium-Version von ICU, die nicht benötigt wird, wenn Qt WebEngine so konfiguriert wurde, dass es die System-ICU verwendet.v8_context_snapshot.bin
enthält einen vorbereiteten Schnappschuss eines v8-Kontextes, um die Initialisierung zu beschleunigen. Debug-Builds verwenden separate Snapshots mit der Dateinamenserweiterung.debug.bin
anstelle von.bin
. Unter macOS gibt es für jede Architektur einen Snapshot mit entsprechendem Namen, zum Beispielv8_context_snapshot.arm64.bin
oderv8_context_snapshot.arm64.debug.bin
.
Die Ressourcen werden an den folgenden Orten gesucht:
- Unter Linux und Windows: das Verzeichnis
resources
in dem durch QLibraryInfo::location(QLibraryInfo::DataPath) angegebenen Verzeichnis - Unter macOS:
.app/Content/Resources
- Das mit QCoreApplication::applicationDirPath() angegebene Anwendungsverzeichnis
Alternativ kann ein Pfad zum Ressourcenverzeichnis als Wert der Umgebungsvariablen QTWEBENGINE_RESOURCES_PATH
festgelegt werden.
Übersetzungen
Lokale Daten (wie en-US.pak
) werden an den folgenden Stellen gesucht:
- Unter macOS:
.app/Content/Resources
- Unter Linux und Windows:
qtwebengine_locales
in dem durch QLibraryInfo::location(QLibraryInfo::TranslationsPath) angegebenen Verzeichnis
Alternativ kann ein Locales-Verzeichnispfad als Wert der Umgebungsvariablen QTWEBENGINE_LOCALES_PATH
festgelegt werden.
JavaScript-Dateien in Qt-Ressourcen-Dateien
Wenn Ihre WebEngine Anwendung mit Qt Quick Compiler gebaut wird und die Anwendung JavaScript-Dateien in .qrc-Ressourcen ausliefert und diese Dateien aus HTML-Seiten heraus geladen werden sollen, stellen Sie sicher, dass Sie die Ressourcendateien in einer QTQUICK_COMPILER_SKIPPED_RESOURCES
qmake-Variable in Ihrem Projekt angeben. Dies verhindert, dass Qt Quick Compiler versucht, C++-Code für den entsprechenden JavaScript-Code zu generieren, und dass der ursprüngliche JavaScript-Code aus der Qt-Ressourcen-Datei entfernt wird, was zu fehlerhaften HTML-Seiten führen würde. Ein Beispiel:
QTQUICK_COMPILER_SKIPPED_RESOURCES += resources/my_resource.qrc
macOS-spezifische Bereitstellungsschritte
Um eine Qt WebEngine Anwendung unter macOS bereitzustellen, müssen Sie sicherstellen, dass der Qt WebEngine Prozess mit einer entitlements-Datei signiert ist, die mindestens die in QtWebEngineCore.framework/Helpers/QtWebEngineProcess.app/Contents/Resources/QtWebEngineProcess.entitlements aufgeführten entitlements enthält.
Um eine Qt WebEngine Anwendung, die auf das Mikrofon oder die Kamera unter macOS zugreift, bereitzustellen, müssen Sie Texte für die Meldungen bereitstellen, die dem Benutzer angezeigt werden, um zu erklären, warum die Anwendung um die Erlaubnis zum Zugriff auf die Kamera oder das Mikrofon bittet. Fügen Sie dazu die Texte mit den unten beschriebenen Schlüsseln in die Info.plist
Datei der Anwendung ein.
Für die Meldung zur Kameranutzung geben Sie einen Text mit dem folgenden Schlüssel ein:
<key>NSCameraUsageDescription</key> <string>Your message text for camera usage.</string>
Siehe auch die Dokumentation der Eigenschaftslistendatei von Apple.
Für die Meldung zur Mikrofonverwendung geben Sie einen Text mit dem folgenden Schlüssel ein:
<key>NSMicrophoneUsageDescription</key> <string>Your message text for microphone usage.</string>
Siehe auch Apples Dokumentation der Eigenschaftslistendatei.
Um eine Anwendung zu beglaubigen, die auf die Kamera oder das Mikrofon zugreift, müssen Sie die entsprechenden Schlüssel zur Entitlements-Datei Ihrer Anwendung hinzufügen, die für die Bereitstellung und Beglaubigung verwendet wird.
Um den Zugriff auf die Kamera zu ermöglichen, fügen Sie hinzu:
<key>com.apple.security.device.camera</key> <true/>
Siehe auch die Dokumentation zur Kamera-Berechtigung von Apple.
Um den Zugriff auf das Mikrofon zu ermöglichen, fügen Sie hinzu:
<key>com.apple.security.device.microphone</key> <true/>
Siehe auch die Dokumentation zur Mikrofon-Berechtigung von Apple.
© 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.