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
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 obiektLaunchParams
z wartościątargetURL
ustawioną na URL uruchamiania zostanie umieszczony w kolejce wwindow.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ą znavigate-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.
- 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, na przykładhttps://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 do obsługi czatu i zobacz, jak Musicr 2.0 otwiera się 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ć 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.