Uruchom interfejs Handler API

Kontrolowanie sposobu uruchamiania aplikacji.

Interfejs Launch Handler API umożliwia kontrolowanie sposobu uruchamiania aplikacji, np. czy ma ona korzystać z istniejącego czy nowego okna oraz czy wybrane okno ma być przekierowywane do adresu URL uruchomienia. Podobnie jak w przypadku File Handling API, w tym przypadku w window.launchQueue uruchomionej strony umieszczany jest obiekt LaunchParams.

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. Uruchom Zakończono

Korzystanie z interfejsu Launch Handler API

Obsługa przeglądarek

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, dopóki nie zostaną obsłużone przez określonego konsumenta.

Element manifestu launch_handler

Aby deklaratywnie określić sposób uruchamiania aplikacji, dodaj do pliku manifestu element launch_handler. Ma ono jedno pole podrzędne o nazwie client_mode. Umożliwia określenie, czy ma zostać uruchomiony nowy czy istniejący klient, oraz czy ma on być nawigowany. Poniższy przykład przedstawia plik z przykładowymi wartościami, które zawsze kierują wszystkie uruchomienia do nowego klienta.

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

Jeśli nie podasz tu żadnej wartości, launch_handler przyjmie domyślnie wartość {"client_mode": "auto"}. Dozwolone wartości pól podrzędnych to:

  • client_mode:
    • navigate-new: w oknie aplikacji internetowej tworzony jest nowy kontekst przeglądania, aby wczytać docelowy adres URL uruchomienia.
    • navigate-existing: ostatnio używany kontekst przeglądania w oknie aplikacji internetowej jest przekierowywany na docelowy adres URL uruchomienia.
    • focus-existing: Do obsługi uruchomienia wybierany jest kontekst przeglądania, z którym ostatnio wchodzono w interakcję w oknie aplikacji internetowej. Nowy obiekt LaunchParams z atrybutem targetURL ustawionym na adres URL uruchomienia zostanie umieszczony w kolejce w window.launchQueue dokumentu.
    • auto: zachowanie zależy od agenta użytkownika, który decyduje, co najlepiej sprawdza się na danej platformie. Na przykład urządzenia mobilne obsługują tylko pojedynczych klientów i używają symbolu existing-client, a urządzenia stacjonarne obsługują wiele okien i używają symbolu navigate-new, aby uniknąć utraty danych.

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

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

Używanie window.launchQueue

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

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

Prezentacja

Wersję demonstracyjną interfejsu Launch Handler API możesz zobaczyć na stronie PWA Launch Handler Demo. Zapoznaj się z kodem źródłowym aplikacji, aby zobaczyć, jak korzysta ona z interfejsu Launch Handler API.

  1. Zainstaluj aplikację Musicr 2.0.
  2. Wyślij sobie link do formularza w aplikacji do czatowaniahttps://mdn.github.io/dom-examples/launch-handler/?track=https://example.com/music.mp3. (Możesz dostosować parametr https://example.com/music.mp3 dla dowolnego adresu URL wskazującego plik audio, np. https://mdn.github.io/dom-examples/launch-handler/?track=https://huggingface.co/spaces/VIDraft/PHI4-Multimodal/resolve/main/examples/harvard.wav).
  3. Kliknij link w aplikacji do czatowania i zobacz, jak otwiera się Musicr 2.0 i odtwarza utwór.
  4. Ponownie kliknij link w aplikacji do czatu. Zauważysz, że nie pojawi się druga instancja Musicr 2.0.

Prześlij opinię

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

Opisz projekt interfejsu API

Czy coś w API nie działa tak, jak oczekujesz? Czy brakuje metod lub właściwości, które są potrzebne do realizacji Twojego pomysłu? Masz pytania lub uwagi dotyczące modelu zabezpieczeń? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub dodaj swoje uwagi do istniejącego problemu.

Zgłaszanie problemu z implementacją

Czy udało Ci się znaleźć 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 i instrukcje odtwarzania problemu, a w polu Komponenty wpisz Blink>AppManifest.

Wyrażanie poparcia dla interfejsu API

Czy planujesz używać interfejsu Launch Handler API? Twoje publiczne wsparcie pomaga zespołowi Chromium określać priorytety funkcji i pokazuje innym dostawcom przeglądarek, jak ważne jest ich wspieranie.

Wyślij tweeta do @ChromiumDev z hasztagiem #LaunchHandler i napisz, gdzie i jak korzystasz z tej funkcji.

Przydatne linki