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:

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 Beispiel v8_context_snapshot.arm64.bin oder v8_context_snapshot.arm64.debug.bin.

Die Ressourcen werden an den folgenden Orten gesucht:

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.