kontrolować sposób uruchamiania aplikacji;
Interfejs Launch Handler API pozwala kontrolować sposób uruchamiania aplikacji – na przykład czy używa ona istniejącego czy nowego okna i czy wybrane okno prowadzi do adresu URL uruchomienia. Podobnie jak w przypadku interfejsu File Handing API, obiekt LaunchParams
jest również dodawany do kolejki w window.launchQueue
uruchamianej stronie.
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. 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 i czy ma być wyświetlony. Ten przykład pokazuje plik z przykładowymi wartościami, który zawsze przekierowywałby 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
: to klient użytkownika decyduje, co sprawdzi się najlepiej w przypadku danej platformy. 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ść. Dzięki temu możesz 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
Sposób działania interfejsu Launch Handler API możesz zobaczyć w wersji demonstracyjnej PWA Launch Handler. 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.
Prześlij informacje o projektowaniu interfejsu API
Czy jest coś, co nie działa w interfejsie API 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 podziel się uwagami na temat istniejącego problemu.
Zgłoś problem 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 Składniki.
Błąd świetnie nadaje się do udostępniania szybkich poprawek.
Pokaż wsparcie dla interfejsu API
Zamierzasz używać interfejsu Launch Handler API? Twoje publiczne wsparcie pomaga zespołowi Chromium priorytetowo traktować funkcje i pokazuje innym dostawcom przeglądarek, jak ważne jest, aby wspierać te funkcje.
Wyślij tweeta do @ChromiumDev, używając hashtaga #LaunchHandler
, i podaj, gdzie i jak z niego korzystasz.