Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten.Erfahre mehr über dieses Experiment.
Launch Handler API
Limited availability
This feature is not Baseline because it does not work in some of the most widely-used browsers.
Experimentell:Dies ist eineexperimentelle Technologie
Überprüfen Sie dieBrowser-Kompatibilitätstabelle sorgfältig vor der Verwendung auf produktiven Webseiten.
DieLaunch Handler API ermöglicht es Entwicklern, zu kontrollieren, wie eineprogressive Web-App (PWA) gestartet wird — zum Beispiel, ob sie ein bestehendes Fenster verwendet oder ein neues erstellt, und wie die Ziel-Start-URL der App behandelt wird.
In diesem Artikel
Konzepte und Verwendung
Sie können das Startverhalten Ihrer App festlegen, indem Sie das Feldlaunch_handler zu Ihrer Web-App-Manifestdatei hinzufügen. Dieses hat ein Unterfeld,client_mode, das einen Zeichenfolgenwert enthält, der angibt, wie die App gestartet und navigiert werden soll. Zum Beispiel:
{ "launch_handler": { "client_mode": "focus-existing" }}Falls nicht angegeben, ist der Standardwert fürclient_modeauto. Verfügbare Werte sind:
focus-existingDer zuletzt interagierte Browsing-Kontext in einem Web-App-Fenster wird ausgewählt, um den Start zu behandeln. Dies wird die Ziel-Start-URL in der
targetURLEigenschaft desLaunchParamsObjekts füllen, das in die Rückruffunktion vonwindow.launchQueue.setConsumer()übergeben wird. Wie unten zu sehen ist, ermöglicht dies, die Startbehandlung Ihrer App individuell anzupassen.navigate-existingDer zuletzt interagierte Browsing-Kontext in einem Web-App-Fenster wird zur Ziel-Start-URL navigiert. Die Ziel-URL wird weiterhin über
window.launchQueue.setConsumer()verfügbar gemacht, um zusätzliche individuelle Startnavigationsbehandlungen zu implementieren.navigate-newEin neuer Browsing-Kontext wird in einem Web-App-Fenster erstellt, um die Ziel-Start-URL zu laden. Die Ziel-URL wird weiterhin über
window.launchQueue.setConsumer()verfügbar gemacht, um zusätzliche individuelle Startnavigationsbehandlungen zu implementieren.autoDer User-Agent entscheidet, was am besten für die Plattform funktioniert. Zum Beispiel könnte
navigate-existingauf Mobilgeräten mehr Sinn machen, wo einzelne App-Instanzen üblich sind, währendnavigate-newin einem Desktop-Kontext mehr Sinn machen könnte. Dies ist der Standardwert, falls angegebene Werte ungültig sind.
Wennfocus-existing verwendet wird, können Sie Code innerhalb der Rückruffunktion vonwindow.launchQueue.setConsumer() einfügen, um eine individuelle Behandlung dertargetURL bereitzustellen.
window.launchQueue.setConsumer((launchParams) => { // Do something with launchParams.targetURL});Hinweis:LaunchParams hat auch eineLaunchParams.files Eigenschaft, die ein schreibgeschütztes Array vonFileSystemHandle Objekten zurückgibt, die Dateien repräsentieren, die zusammen mit der Startnavigation über diePOST-Methode übergeben wurden. Dies ermöglicht die Implementierung einer individuellen Datei-Behandlung.
Schnittstellen
LaunchParamsWird bei der Implementierung individueller Startnavigationsbehandlung in einer PWA verwendet. Wenn
window.launchQueue.setConsumer()aufgerufen wird, um die Startnavigations-Behandlungsfunktionalität einzurichten, wird die Rückruffunktion innerhalb vonsetConsumer()eine Instanz desLaunchParamsObjekts übergeben.LaunchQueueWenn eineprogressive Web-App (PWA) mit einem
launch_handlerclient_modeWert vonfocus-existing,navigate-newodernavigate-existinggestartet wird, ermöglichtLaunchQueueden Zugriff auf Funktionen, die eine individuelle Startnavigationsbehandlung in der PWA implementieren. Diese Funktionalität wird durch die Eigenschaften desLaunchParamsObjekts gesteuert, das in die Rückruffunktion vonsetConsumer()übergeben wird.
Erweiterungen zu anderen Schnittstellen
window.launchQueueBietet Zugriff auf die
LaunchQueueKlasse, die es ermöglicht, eine individuelle Startnavigationsbehandlung in einerprogressiven Web-App (PWA) zu implementieren, wobei der Behandlungskontext durch denlaunch_handlerManifest-Feldclient_modeWert angezeigt wird.
Beispiele
if ("launchQueue" in window) { window.launchQueue.setConsumer((launchParams) => { if (launchParams.targetURL) { const params = new URL(launchParams.targetURL).searchParams; // Assuming a music player app that gets a track passed to it to be played const track = params.get("track"); if (track) { audio.src = track; title.textContent = new URL(track).pathname.slice(1); audio.play(); } } });}Dieser Code wird in der PWA eingebunden und bei jedem Start der App ausgeführt. Die Rückruffunktion vonwindow.launchQueue.setConsumer() extrahiert das Such-Param aus derLaunchParams.targetURL und, falls sie einentrack Parameter findet, verwendet sie diesen, um dassrc des<audio> Elements zu füllen und den Audiotrack abzuspielen, auf den dies verweist.
Sehen Sie sich die Demo-AppMusicr 2.0 für vollständigen funktionierenden Code an.
Spezifikationen
| Specification |
|---|
| Web App Launch Handler API> # launchqueue-interface> |