Uruchom interfejs Handler API

kontrolować 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,

Krok Stan
1. Tworzenie wyjaśnienia Zakończono
2. Tworzenie wstępnej wersji specyfikacji Zakończono
3. Zbieranie opinii i ulepszanie projektu Zakończone
4. Wersja próbna Origin. Zakończone
5. Wprowadzenie na rynek Zakończono

Korzystanie z interfejsu Launch Handler API

Obsługa przeglądarek

Obsługa przeglądarek

  • Chrome: 110.
  • Edge: 110.
  • Firefox: nieobsługiwane.
  • Safari: nieobsługiwane.

Źródło

Interfejsy

Interfejs Launch Handler API definiuje 2 nowe interfejsy.

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

Element launch_handler w pliku manifestu

Aby deklaratywnie określić sposób uruchamiania aplikacji, dodaj do pliku manifestu element launch_handler. Ma 1 pole podrzędne o nazwie client_mode. Umożliwia określenie, czy ma zostać uruchomiony nowy czy istniejący klient i czy ma być wyświetlony. Ten przykład pokazuje plik z przykładowymi wartościami, który zawsze przekierowywałby wszystkie uruchomienia do nowego klienta.

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

Jeśli nie podasz wartości, launch_handler przyjmie wartość domyślną {"client_mode": "auto"}. Dozwolone wartości w podpolach:

  • client_mode:
    • navigate-new: w oknie aplikacji internetowej tworzony jest nowy kontekst przeglądania, aby wczytać docelowy adres URL.
    • navigate-existing: ostatnio używany kontekst przeglądania w oknie aplikacji internetowej przekierowuje do docelowego adresu URL uruchamiania.
    • focus-existing: do uruchomienia wybierana jest aplikacja, z którą użytkownik ostatnio wszedł w interakcję w oknie aplikacji internetowej. Nowy obiekt LaunchParams z wartością targetURL ustawioną na adres URL uruchomienia zostanie umieszczony w kole 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 pojedynczych klientów i używają existing-client, podczas gdy 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, z których 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.

Jeśli na przykład dodamy hipotetyczną wartość "focus-matching-url", witryny będą określać wartość "client_mode": ["focus-matching-url", "navigate-existing"], aby nadal kontrolować działanie starszych przeglądarek, które nie obsługują wartości "focus-matching-url".

Używanie window.launchQueue

W tym kodzie funkcja extractSongID() wyodrębnia wartość songID z adresu URL przekazanego podczas uruchamiania. Służy do odtwarzania utworu w aplikacji internetowej odtwarzacza muzyki.

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

Prezentacja

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 używa on interfejsu Launch Handler API.

  1. Zainstaluj aplikację Musicr 2.0.
  2. Wyślij do siebie link w aplikacji do czatu w formacie https://launch-handler.glitch.me?track=https://example.com/music.mp3. (możesz dostosować adres https://example.com/music.mp3 do dowolnego adresu URL wskazującego na 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 czatu, a następnie zobacz, jak Musicr 2.0 otwiera i odtwarza utwór.
  4. Ponownie kliknij link w aplikacji czatu. Nie pojawi się druga instancja Musicr 2.0.

Prześlij opinię

Zespół Chromium chce poznać Twoje wrażenia związane z interfejsem Launch Handler API.

Prześlij informacje o projektowaniu interfejsu API

Czy jest coś, co nie działa w interfejsie API zgodnie z oczekiwaniami? A może brakuje metod lub właściwości, których potrzebujesz do wdrożenia swojego pomysłu? Masz pytania lub uwagi dotyczące modelu bezpieczeństwa? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub podziel się uwagami na temat istniejącego problemu.

Zgłoś problem z implementacją

Czy znalazłeś/znalazłaś błąd w implementacji Chromium? A może implementacja różni się od specyfikacji? Zgłoś błąd na stronie new.crbug.com. Podaj jak najwięcej szczegółów, instrukcje odtwarzania błędu i wpisz Blink>AppManifest w polu Składniki. Błąd świetnie nadaje się do udostępniania szybkich poprawek.

Pokaż wsparcie dla interfejsu API

Zamierzasz używać 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 do @ChromiumDev, używając hashtaga #LaunchHandler, i podaj, gdzie i jak z niego korzystasz.

Przydatne linki