Kontroluj sposób uruchamiania aplikacji.
Interfejs Launch Handler API pozwala kontrolować sposób uruchamiania aplikacji, na przykład czy używa istniejącego czy nowego okna i czy wybrane okno ma przechodzić do adresu URL uruchamiania. Podobnie jak w przypadku interfejsu File Handing API, obiekt LaunchParams
jest umieszczany w kolejce w window.launchQueue
uruchomionej strony.
Obecny stan,
Step | Stan |
---|---|
1. Utwórz wyjaśnienie | Zakończono |
2. Utwórz wstępną wersję roboczą specyfikacji | Zakończono |
3. Zbieranie opinii i ulepszanie projektu | Odpowiedź była wyczerpująca |
4. Testowanie origin. | Odpowiedź była wyczerpująca |
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 dwa nowe interfejsy.
LaunchParams
: obiekt zawierający targetURL
, który ma być obsługiwany przez konsumenta.
LaunchQueue
: kolejki są uruchamiane do momentu ich obsługi przez określonego konsumenta.
Użytkownik pliku manifestu launch_handler
Aby deklaratywnie określić działanie aplikacji podczas uruchamiania, dodaj do pliku manifestu członka pliku manifestu launch_handler
. Zawiera jedno pole podrzędne o nazwie client_mode
. Pozwala decydować, czy należy uruchomić nowego czy istniejącego klienta oraz czy należy po nim poruszać się po kliencie. Poniższy 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
domyślnie przyjmuje 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, aby wczytać docelowy adres URL uruchamiania.navigate-existing
: ostatnia interakcja w kontekście przeglądania w oknie aplikacji internetowej jest otwierana pod docelowy adres URL wersji.focus-existing
: do uruchamiania służy ostatnia interakcja w kontekście przeglądania w oknie aplikacji internetowej. Nowy obiektLaunchParams
ztargetURL
ustawionym na adres URL uruchamiania zostanie umieszczony w kolejce wwindow.launchQueue
dokumentu.auto
: działanie klienta użytkownika decyduje o tym, co sprawdzi się najlepiej w przypadku danej platformy. Na przykład urządzenia mobilne obsługują tylko pojedynczych klientów i używają protokołuexisting-client
, a komputery obsługują wiele okien i używająnavigate-new
, aby uniknąć utraty danych.
Właściwość client_mode
akceptuje też listę (tablica) wartości, w której zostanie użyta pierwsza prawidłowa wartość. Dzięki temu można dodawać do specyfikacji nowe wartości bez naruszania zgodności wstecznej z istniejącymi implementacjami.
Jeśli na przykład dodasz hipotetyczną wartość "focus-matching-url"
, witryny określą "client_mode": ["focus-matching-url", "navigate-existing"]
, aby nadal kontrolować działanie starszych przeglądarek, które nie obsługiwały "focus-matching-url"
.
Korzystanie z window.launchQueue
W poniższym kodzie funkcja extractSongID()
wyodrębnia songID
z adresu URL przekazanego w momencie uruchomienia. Służy do odtwarzania utworu w PWA odtwarzacza muzyki.
if ('launchQueue' in window) {
launchQueue.setConsumer((launchParams) => {
if (launchParams.targetURL) {
const songID = extractSongId(launchParams.targetURL);
if (songID) {
playSong(songID);
}
}
});
}
Demonstracyjny
Możesz zobaczyć, jak działa interfejs Launch Handler API, w wersji demonstracyjnej aplikacji PWA Launch Handler. Sprawdź kod źródłowy aplikacji, aby zobaczyć, jak korzysta ona z interfejsu Launch Handler API.
- Zainstaluj aplikację Musicr 2.0 na urządzeniu z ChromeOS.
- Wyślij do siebie link w aplikacji do czatu w formularzu
https://launch-handler.glitch.me?track=https://example.com/music.mp3
. (Możesz dostosować właściwośćhttps://example.com/music.mp3
w przypadku dowolnego adresu URL wskazującego 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 do obsługi czatu i zobacz, jak Musicr 2.0 otwiera i odtwarza utwór.
- Kliknij link jeszcze raz w aplikacji do czatu. Zauważ, że nie będziesz mieć drugiego wystąpienia Musicr 2.0.
Prześlij opinię
Zespół Chromium chce poznać Twoją opinię na temat korzystania z interfejsu Launch Handler API.
Opowiedz nam o konstrukcji interfejsu API
Czy któryś interfejs API nie działa zgodnie z oczekiwaniami? A może brakuje Ci metod lub właściwości, które potrzebujesz do realizacji swojego pomysłu? Masz pytanie lub komentarz na temat modelu zabezpieczeń? Zgłoś problem ze specyfikacją w odpowiednim repozytorium GitHub lub dodaj swoją opinię o istniejącym problemie.
Zgłoś problem z implementacją
Czy w Chromium wystąpił błąd? A może implementacja różni się od specyfikacji?
Zgłoś błąd na stronie new.crbug.com. Podaj jak najwięcej szczegółów, proste instrukcje odtworzenia i wpisz Blink>AppManifest
w polu Komponenty.
Glitch to świetny sposób na szybkie i łatwe udostępnianie kopii.
Pokaż obsługę 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 ich wsparcie.
Wyślij tweeta do @ChromiumDev, używając hashtagu #LaunchHandler
, i daj nam znać, gdzie i jak go używasz.