Uruchom interfejs Handler API

kontrolować sposób uruchamiania aplikacji;

Interfejs Launch Handler API umożliwia kontrolowanie sposobu uruchamiania aplikacji, np. czy ma ona używać istniejącego czy nowego okna i czy wybrane okno ma być przekierowane do adresu URL uruchamiania. Podobnie jak w przypadku interfejsu API do obsługi plików, powoduje to również umieszczenie obiektu LaunchParams w kole window.launchQueue na stronie uruchomionej.

Obecny stan,

Krok Stan
1. Tworzenie wyjaśnienia Zakończono
2. Tworzenie wstępnej wersji specyfikacji Zakończono
3. Zbieraj opinie i ulepszaj projekt 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 oraz czy ma być wyświetlony. Ten 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 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: zachowanie zależy od klienta użytkownika, który decyduje, co działa najlepiej na danej platformie. 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ść. Pozwala to 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

Demo interfejsu Launch Handler API możesz zobaczyć w demo uchwytu uruchamiania PWA. 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.

Poinformuj nas o projektowaniu interfejsu API

Czy coś w interfejsie API nie działa 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 dodaj swoje uwagi do istniejącego problemu.

Zgłaszanie problemów z implementacją

Czy znalazłeś 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 Components. Glitch świetnie sprawdza się do udostępniania szybkich reprosów.

Pokaż informacje o pomocy dotyczącej interfejsu API

Zamierzasz używać interfejsu Launch Handler API? Twoja publiczna pomoc pomaga zespołowi Chromium ustalać priorytety funkcji i pokazuje innym dostawcom przeglądarek, jak ważne jest ich wsparcie.

Wyślij tweeta do @ChromiumDev, używając hashtaga #LaunchHandler, i podaj, gdzie i jak z niego korzystasz.

Przydatne linki