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 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 strony, która została otwarta.

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

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 ono 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óry zawsze kieruje 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 uruchamiania 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 urządzenia stacjonarne 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 zachować kontrolę nad działaniem 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żna 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.

Prześlij informacje 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ż pomoc dotyczącą interfejsu API

Czy planujesz 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