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 oraz czy wybrane okno ma przejść 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. Utwórz wyjaśnienie Zakończono
2. Tworzenie wstępnej wersji specyfikacji Zakończono
3. Zbieraj opinie iterować 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 obiekt targetURL, który ma być obsługiwany przez konsumenta. LaunchQueue : kolejki uruchamiają się, dopóki nie zostaną obsługiwane przez określonego konsumenta.

Użytkownik pliku manifestu launch_handler

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óre zawsze kierują 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 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 URL uruchamiania zostanie umieszczony w kolejce w window.launchQueue dokumentu.
    • auto: zachowanie zależy od klienta użytkownika, który decyduje, co działa najlepiej na danej platformie. Dla: na przykład urządzenia mobilne obsługują tylko jednego klienta i używają existing-client, natomiast komputery obsługują wiele okien i korzystają z navigate-new, by 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 naruszenia zgodności wstecznej w istniejących już wdrożeniach.

Jeśli na przykład zostanie dodana hipotetyczna wartość "focus-matching-url", witryny będą określać "client_mode": ["focus-matching-url", "navigate-existing"], aby nadal sterować zachowanie starszych przeglądarek, które nie obsługiwały "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, na przykład 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 czatu. Nie pojawi się druga instancja Musicr 2.0.

Prześlij opinię

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

Poinformuj nas o projektowaniu interfejsu API

Czy coś w 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 pytanie lub komentarz na temat zabezpieczeń model atrybucji? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub dodaj swoje uwagi do do 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, instrukcje odtwarzania błędu i wpisz Blink>AppManifest w polu Składniki. Glitch świetnie sprawdza się do udostępniania szybkich reprosów.

Pokaż pomoc dotyczącą 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