Uruchom interfejs Handler API

Kontroluj sposób uruchamiania aplikacji.

Interfejs Launch Handler API pozwala kontrolować sposób uruchamiania aplikacji – na przykład czy używa ona istniejącego czy nowego okna i czy wybrane okno prowadzi do adresu URL uruchomienia. Podobnie jak w przypadku interfejsu File Handing API, obiekt LaunchParams jest również dodawany do kolejki w window.launchQueue uruchamianej stronie.

Obecny stan,

Step Stan
1. Utwórz wyjaśnienie Zakończono
2. Utwórz początkową wersję roboczą specyfikacji Zakończono
3. Zbieraj opinie i ulepszaj projekt Ukończono
4. Wersja próbna origin. Ukończono
5. Uruchomienie kampanii Zakończono

Korzystanie z interfejsu Launch Handler API

Obsługiwane przeglądarki

Moduł obsługi uruchamiania jest dostępny tylko w ChromeOS.

Obsługa przeglądarek

  • 110
  • 110
  • x
  • x

Źródło

Interfejsy

Interfejs Launch Handler API definiuje 2 nowe interfejsy.

LaunchParams : obiekt zawierający obiekt targetURL, który ma być obsługiwany przez konsumenta. LaunchQueue : kolejki uruchamiają się, dopóki nie zostaną wykonane przez określonego konsumenta.

Użytkownik pliku manifestu launch_handler

Aby deklaratywnie określić sposób uruchamiania aplikacji, dodaj do pliku manifestu użytkownika launch_handler. Zawiera 1 pole podrzędne o nazwie client_mode. Pozwala określić, czy należy uruchomić nowego czy istniejącego klienta i czy należy się po nim poruszać. W przykładzie poniżej widać plik z przykładowymi wartościami, który zawsze kierował wszystkie uruchomienia do nowego klienta.

{
  "launch_handler": {
    "client_mode": "navigate-new"
  }
}

Jeśli nie określono inaczej, launch_handler przyjmuje domyślnie wartość {"client_mode": "auto"}. Dozwolone wartości pól podrzędnych:

  • client_mode:
    • navigate-new: w oknie aplikacji internetowej tworzony jest nowy kontekst przeglądania w celu wczytania docelowego adresu URL uruchomienia.
    • navigate-existing: przejście do docelowego adresu URL uruchomienia podczas ostatniej interakcji z kontekstem przeglądania w oknie aplikacji internetowej prowadzi do docelowego adresu URL uruchomienia.
    • focus-existing: do uruchomienia zostanie wybrana ostatnia interakcja z kontekstem przeglądania w oknie aplikacji internetowej. Nowy obiekt LaunchParams z wartością targetURL ustawionym na adres URL uruchamiania zostanie dodany do kolejki window.launchQueue dokumentu.
    • auto: to klient użytkownika decyduje, co sprawdzi się najlepiej w przypadku danej platformy. Na przykład urządzenia mobilne obsługują tylko jednego klienta i używają interfejsu existing-client, natomiast komputery obsługują wiele okien i używają navigate-new, aby uniknąć utraty danych.

Właściwość client_mode akceptuje też listę (tablicę) wartości, w której zostanie użyta pierwsza prawidłowa wartość. Dzięki temu możesz dodawać nowe wartości do specyfikacji bez naruszania zgodności wstecznej z dotychczasowymi implementacjami.

Gdyby na przykład dodana została hipotetyczna wartość "focus-matching-url", witryny używałyby parametru "client_mode": ["focus-matching-url", "navigate-existing"], aby w dalszym ciągu kontrolować działanie starszych przeglądarek, które nie obsługują "focus-matching-url".

Korzystanie z window.launchQueue

W poniższym kodzie funkcja extractSongID() wyodrębnia songID z adresu URL przekazanego podczas uruchamiania. Służy do odtwarzania utworu w odtwarzaczu muzyki PWA.

if ('launchQueue' in window) {
  launchQueue.setConsumer((launchParams) => {
    if (launchParams.targetURL) {
      const songID = extractSongId(launchParams.targetURL);
      if (songID) {
        playSong(songID);
      }
    }
  });
}

Pokaz

Sposób działania interfejsu Launch Handler API możesz zobaczyć w wersji demonstracyjnej PWA Launch Handler. Sprawdź kod źródłowy aplikacji, aby zobaczyć, jak korzysta z interfejsu Launch Handler API.

  1. Zainstaluj aplikację Musicr 2.0 na urządzeniu z ChromeOS.
  2. Wyślij do siebie link w aplikacji czatu o formularzu https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Możesz dostosować parametr https://example.com/music.mp3 pod kątem dowolnego adresu URL prowadzącego do pliku audio, np. https://launch-handler.glitch.me?track=https://cdn.glitch.me/3e952c9c-4d6d-4de4-9873-23cf976b422e%2Ffile_example_MP3_700KB.mp3?v=1638795977190).
  3. Kliknij link w aplikacji do obsługi czatu i zobacz, jak Musicr 2.0 otwiera się i odtwarza utwór.
  4. Ponownie kliknij link w aplikacji do obsługi czatu. Zauważ, że nie pojawi się drugie wystąpienie aplikacji Musicr 2.0.

Prześlij opinię

Zespół Chromium chce poznać Twoją opinię o interfejsie Launch Handler API.

Opowiedz nam o konstrukcji interfejsu API

Czy jest coś, co nie działa w interfejsie API zgodnie z oczekiwaniami? A może brakuje Ci metod lub właściwości, których potrzebujesz, by zrealizować swój pomysł? Masz pytanie lub komentarz na temat modelu zabezpieczeń? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub podziel się uwagami na temat istniejącego problemu.

Zgłoś problem z implementacją

Czy wystąpił błąd związany z implementacją Chromium? Czy implementacja różni się od specyfikacji? Zgłoś błąd na stronie new.crbug.com. Podaj jak najwięcej szczegółów, proste instrukcje odtwarzania i wpisz Blink>AppManifest w polu Komponenty. Usługa Glitch świetnie nadaje się do szybkiego i łatwego udostępniania poprawek.

Pokaż wsparcie dla interfejsu API

Czy zamierzasz korzystać z interfejsu Launch Handler API? Twoje publiczne wsparcie pomaga zespołowi Chromium priorytetowo traktować funkcje i pokazuje innym dostawcom przeglądarek, jak ważne jest, aby wspierać te funkcje.

Wyślij tweeta na adres @ChromiumDev, używając hashtagu #LaunchHandler, i poinformuj nas, gdzie i jak go używasz.

Przydatne linki