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 istniejącego czy nowego okna i czy wybrane okno ma przechodzić do adresu URL uruchamiania. Podobnie jak w przypadku interfejsu File Handing API, obiekt LaunchParams jest umieszczany w kolejce w window.launchQueue uruchomionej strony.

Obecny stan,

Step Stan
1. Utwórz wyjaśnienie Zakończono
2. Utwórz wstępną wersję roboczą specyfikacji Zakończono
3. Zbieranie opinii i ulepszanie projektu Odpowiedź była wyczerpująca
4. Testowanie origin. Odpowiedź była wyczerpująca
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 dwa nowe interfejsy.

LaunchParams : obiekt zawierający targetURL, który ma być obsługiwany przez konsumenta. LaunchQueue : kolejki są uruchamiane do momentu ich obsługi przez określonego konsumenta.

Użytkownik pliku manifestu launch_handler

Aby deklaratywnie określić działanie aplikacji podczas uruchamiania, dodaj do pliku manifestu członka pliku manifestu launch_handler. Zawiera jedno pole podrzędne o nazwie client_mode. Pozwala decydować, czy należy uruchomić nowego czy istniejącego klienta oraz czy należy po nim poruszać się po kliencie. Poniższy przykład pokazuje plik z przykładowymi wartościami, które zawsze kierują wszystkie uruchomienia do nowego klienta.

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

Jeśli nie określono inaczej, launch_handler domyślnie przyjmuje 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, aby wczytać docelowy adres URL uruchamiania.
    • navigate-existing: ostatnia interakcja w kontekście przeglądania w oknie aplikacji internetowej jest otwierana pod docelowy adres URL wersji.
    • focus-existing: do uruchamiania służy ostatnia interakcja w kontekście przeglądania w oknie aplikacji internetowej. Nowy obiekt LaunchParams z targetURL ustawionym na adres URL uruchamiania zostanie umieszczony w kolejce w window.launchQueue dokumentu.
    • auto: działanie klienta użytkownika decyduje o tym, co sprawdzi się najlepiej w przypadku danej platformy. Na przykład urządzenia mobilne obsługują tylko pojedynczych klientów i używają protokołu existing-client, a komputery obsługują wiele okien i używają navigate-new, aby uniknąć utraty danych.

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

Jeśli na przykład dodasz hipotetyczną wartość "focus-matching-url", witryny określą "client_mode": ["focus-matching-url", "navigate-existing"], aby nadal kontrolować działanie starszych przeglądarek, które nie obsługiwały "focus-matching-url".

Korzystanie z window.launchQueue

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

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

Demonstracyjny

Możesz zobaczyć, jak działa interfejs Launch Handler API, w wersji demonstracyjnej aplikacji PWA Launch Handler. Sprawdź kod źródłowy aplikacji, aby zobaczyć, jak korzysta ona z interfejsu Launch Handler API.

  1. Zainstaluj aplikację Musicr 2.0 na urządzeniu z ChromeOS.
  2. Wyślij do siebie link w aplikacji do czatu w formularzu https://launch-handler.glitch.me?track=https://example.com/music.mp3. (Możesz dostosować właściwość https://example.com/music.mp3 w przypadku dowolnego adresu URL wskazującego plik 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 i odtwarza utwór.
  4. Kliknij link jeszcze raz w aplikacji do czatu. Zauważ, że nie będziesz mieć drugiego wystąpienia Musicr 2.0.

Prześlij opinię

Zespół Chromium chce poznać Twoją opinię na temat korzystania z interfejsu Launch Handler API.

Opowiedz nam o konstrukcji interfejsu API

Czy któryś interfejs API nie działa zgodnie z oczekiwaniami? A może brakuje Ci metod lub właściwości, które potrzebujesz do realizacji swojego pomysłu? Masz pytanie lub komentarz na temat modelu zabezpieczeń? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub dodaj swoją opinię o istniejącym problemie.

Zgłoś problem z implementacją

Czy w Chromium wystąpił błąd? A może implementacja różni się od specyfikacji? Zgłoś błąd na stronie new.crbug.com. Podaj jak najwięcej szczegółów, proste instrukcje odtworzenia i wpisz Blink>AppManifest w polu Komponenty. Glitch to świetny sposób na szybkie i łatwe udostępnianie kopii.

Pokaż obsługę 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 ich wsparcie.

Wyślij tweeta do @ChromiumDev, używając hashtagu #LaunchHandler, i daj nam znać, gdzie i jak go używasz.

Przydatne linki