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
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 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 obiektLaunchParams
z wartościątargetURL
ustawioną na adres URL uruchomienia zostanie umieszczony w kolewindow.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.
- Zainstaluj aplikację Musicr 2.0.
- 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ć adreshttps://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
). - Kliknij link w aplikacji czatu, a następnie zobacz, jak Musicr 2.0 otwiera i odtwarza utwór.
- 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ś/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 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? Twoje publiczne wsparcie 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.