Chrome-Apps werden nach Chrome 102 für Windows, Linux und MacOS eingestellt. Unter ChromeOS werden Chrome-Apps mindestens bis Januar 2025 unterstützt. Wir empfehlen jedoch dringend, zu Web-Apps zu migrieren, da Chrome-Apps eingestellt werden sollen. Bisher hatten Chrome-Apps im Kioskmodus zusätzliche Funktionen, die derzeit von Web-Apps allein nicht unterstützt werden. Sie können einige dieser Funktionen weiterhin nutzen, indem Sie eine Companion-Erweiterung mit Ihrer Kiosk-Webanwendung bereitstellen.
Wie werden Erweiterungen bereitgestellt?
Erweiterungen werden über die Chrome-Admin-Konsole auf dem Bildschirm für die Kiosk-Konfiguration bereitgestellt (Devices > Chrome > Apps & Extensions > Kiosks). Die Erweiterungen können entweder selbst über einen öffentlich zugänglichen Link gehostet oder im Chrome Web Store gehostet werden. Weitere Informationen zum Verwalten von Erweiterungen in einem Unternehmen oder einer Bildungseinrichtung finden Sie hier.
Wie kann ich Erweiterungs-APIs aus meiner Web-App aufrufen?
Da Sie Begleitererweiterungen mit Ihrer Kiosk-Web-App bereitstellen können, können Sie die Funktionen von Erweiterungen nutzen, indem Sie Erweiterungs-APIs aufrufen, um beispielsweise nützliche Informationen zum Gerät und zur Hardwareplattform abzurufen oder Chrome-Bedienungshilfen zu verwalten.
Wenn Sie Kiosk-only-APIs verwenden, müssen Sie sie im Manifest aktivieren. Implementieren Sie dann die Nachrichtenübergabe zwischen Ihrer Kiosk-Web-App und der Companion-Erweiterung, damit sie miteinander kommunizieren können.
Nur für Kioske verfügbare Erweiterungs-APIs aktivieren
Einige Erweiterungs-APIs sind nur im Kioskmodus verfügbar. Damit Ihre Erweiterung diese Kiosk-APIs aufrufen kann, müssen Sie dem Manifest das Feld "kiosk_enabled" hinzufügen und es auf true festlegen:
{ "manifest_version": 3, "version": "1.0", ... "kiosk_enabled": true }
Nachrichtenübermittlung implementieren
Einrichtung von Erweiterungen
Damit Sie Nachrichten von Ihrer Web-App empfangen und darauf reagieren können, müssen Sie ein Hintergrundskript bereitstellen, das auf Nachrichten vom Client (Ihrer Web-App) wartet und diese Anfragen dann an einen entsprechenden API-Aufruf weiterleitet. Im folgenden Beispiel wird eine Anfrage weitergeleitet, um das ChromeOS-Gerät neu zu starten, wenn die Web-App ein benutzerdefiniertes Nachrichtenobjekt mit einem methodName von callRestart sendet.
// message handler - extension code chrome.runtime.onMessageExternal.addListener(function (request, sender, sendResponse) { if (request.methodName == 'callRestart') { chrome.runtime.restart(); } });
Das Manifest für die Erweiterung kann so konfiguriert werden, dass externe Funktionsaufrufe an die Erweiterung über den Schlüssel externally_connectable möglich sind. Damit wird festgelegt, welche Websites und Erweiterungen Methoden in der Erweiterung aufrufen dürfen. Weitere Informationen zu Chrome-Erweiterungen und Manifest V3 finden Sie in der offiziellen Dokumentation.
{ "background": { "service_worker": "background.js" }, "description": "This restarts your ChromeOS device. Lucky you!", "manifest_version": 3, "name": "Restart your kiosk app", "version": "1.0", "kiosk_enabled": true, "externally_connectable": { "accepts_tls_channel_id": false, "matches": [ "://developer.android.com/" ] } }
Web-App einrichten
Wenn Sie die Erweiterung über eine Web-App aufrufen möchten, benötigen Sie ihre statische Erweiterungs-ID. Diese ID finden Sie auf der chrome://extensions-Seite, die bei der Installation Ihrer Chrome-Erweiterung angezeigt wird, oder im Chrome Web Store, nachdem die Erweiterung hochgeladen wurde. So kann Ihre Web-App die genaue Erweiterung angeben, mit der sie kommunizieren möchte. Rufen Sie dann chrome.runtime.sendMessage auf und übergeben Sie die Erweiterungs-ID mit einer Nachricht, die Sie an die Erweiterung senden möchten.
const STATIC_EXTENSION_ID = 'abcdefghijklmnopqrstuvwxyz'; // found from chrome extensions page of chrome web store. const callExtensionAPI = function (method) { chrome.runtime.sendMessage(STATIC_EXTENSION_ID, { methodName: method, }); }; callExtensionAPI('callRestart');
Weitere Informationen zum Verbinden von Webseiten mit Erweiterungen für die Nachrichtenübermittlung finden Sie in dieser Dokumentation.
Hinweis:Erweiterungen und Web-Apps können nicht beliebig miteinander kommunizieren. Die Erweiterung versucht nur, Nachrichten von Domains zu empfangen, die im Abschnitt externally_connectable des Manifests aufgeführt sind. Ebenso muss eine Webanwendung die statische ID der Erweiterung kennen, mit der sie kommunizieren möchte.