Kontroluj 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,
Step | Stan |
---|---|
1. Utwórz wyjaśnienie | Zakończono |
2. Utwórz początkową wersję roboczą specyfikacji | Zakończono |
3. Zbieraj opinie i ulepszaj projekt | Ukończono |
4. Wersja próbna origin. | Ukończono |
5. Uruchomienie kampanii | Zakończono |
Korzystanie z interfejsu Launch Handler API
Obsługiwane przeglądarki
Moduł obsługi uruchamiania jest dostępny tylko w ChromeOS.
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ą wykonane przez określonego konsumenta.
Użytkownik pliku manifestu launch_handler
Aby deklaratywnie określić sposób uruchamiania aplikacji, dodaj do pliku manifestu użytkownika launch_handler
. Zawiera 1 pole podrzędne o nazwie client_mode
. Pozwala określić, czy należy uruchomić nowego czy istniejącego klienta i czy należy się po nim poruszać. W przykładzie poniżej widać plik z przykładowymi wartościami, który zawsze kierował 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 pól podrzędnych:
client_mode
:navigate-new
: w oknie aplikacji internetowej tworzony jest nowy kontekst przeglądania w celu wczytania docelowego adresu URL uruchomienia.navigate-existing
: przejście do docelowego adresu URL uruchomienia podczas ostatniej interakcji z kontekstem przeglądania w oknie aplikacji internetowej prowadzi do docelowego adresu URL uruchomienia.focus-existing
: do uruchomienia zostanie wybrana ostatnia interakcja z kontekstem przeglądania w oknie aplikacji internetowej. Nowy obiektLaunchParams
z wartościątargetURL
ustawionym na adres URL uruchamiania zostanie dodany do kolejkiwindow.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 jednego klienta i używają interfejsuexisting-client
, natomiast 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, w której 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.
Gdyby na przykład dodana została hipotetyczna wartość "focus-matching-url"
, witryny używałyby parametru "client_mode": ["focus-matching-url", "navigate-existing"]
, aby w dalszym ciągu kontrolować działanie starszych przeglądarek, które nie obsługują "focus-matching-url"
.
Korzystanie z window.launchQueue
W poniższym kodzie funkcja extractSongID()
wyodrębnia songID
z adresu URL przekazanego podczas uruchamiania. Służy do odtwarzania utworu w odtwarzaczu muzyki PWA.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
Pokaz
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 korzysta z interfejsu Launch Handler API.
- Zainstaluj aplikację Musicr 2.0 na urządzeniu z ChromeOS.
- Wyślij do siebie link w aplikacji czatu o formularzu
https://launch-handler.glitch.me?track=https://example.com/music.mp3
. (Możesz dostosować parametrhttps://example.com/music.mp3
pod kątem dowolnego adresu URL prowadzącego do pliku 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 do obsługi czatu i zobacz, jak Musicr 2.0 otwiera się i odtwarza utwór.
- Ponownie kliknij link w aplikacji do obsługi czatu. Zauważ, że nie pojawi się drugie wystąpienie aplikacji Musicr 2.0.
Prześlij opinię
Zespół Chromium chce poznać Twoją opinię o interfejsie Launch Handler API.
Opowiedz nam o konstrukcji interfejsu API
Czy jest coś, co nie działa w interfejsie API zgodnie z oczekiwaniami? A może brakuje Ci metod lub właściwości, których potrzebujesz, by zrealizować swój pomysł? Masz pytanie lub komentarz na temat modelu zabezpieczeń? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub podziel się uwagami na temat 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,
proste instrukcje odtwarzania i wpisz Blink>AppManifest
w polu Komponenty.
Usługa Glitch świetnie nadaje się do szybkiego i łatwego udostępniania poprawek.
Pokaż wsparcie dla interfejsu API
Czy zamierzasz korzystać z 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 na adres @ChromiumDev, używając hashtagu
#LaunchHandler
, i poinformuj nas, gdzie i jak go używasz.