Pozwól zainstalowanym aplikacjom PWA obsługiwać linki, które korzystają z określonego protokołu, aby zapewnić bardziej zintegrowaną obsługę.
Informacje o schematach (inaczej protokołach)
Identyfikator URI (Uniform Resource Identifier) to zwarta sekwencja znaków, która identyfikuje zasobu abstrakcyjnego lub fizycznego. Każdy identyfikator URI zaczyna się od schematu odnosi się do specyfikacji przypisywanie identyfikatorów w ramach tego schematu. Dzięki temu składnia identyfikatora URI jest sfederowana i rozszerzona w którym specyfikacja każdego schematu może jeszcze bardziej ograniczyć składnię i semantykę za pomocą tego schematu. Schematy są też nazywane protokołami. Oto kilka przykładów poniżej.
tel:+1-816-555-1212
mailto:Jane.Doe@example.com
news:comp.infosystems.www.servers.unix
https://web.dev/
Termin Uniform Resource Locator (URL) odnosi się do podzbioru identyfikatorów URI, które oprócz identyfikacja zasobu, udostępnienie sposobu lokalizowania zasobu przez opisanie jego podstawowego dostępu mechanizm (np. lokalizacja sieciowa).
Tło dotyczące metody registerProtocolHandler()
Metoda Navigator
wykorzystująca tylko bezpieczną treść
registerProtocolHandler()
.
umożliwia witrynom rejestrowanie swojej możliwości otwierania lub obsługi określonych schematów adresów URL. Dlatego witryny muszą
należy wywołać metodę w następujący sposób: navigator.registerProtocolHandler(scheme, url)
. Te 2 parametry to:
zdefiniowane w następujący sposób:
scheme
: ciąg znaków zawierający protokół, który ma być obsługiwany przez witrynę.url
: ciąg tekstowy zawierający adres URL modułu obsługi. Ten URL musi zawierać zmienną%s
który zostanie zastąpiony adresem URL ze zmianą znaczenia.
Schemat musi być jednym z
schematy na liście bezpiecznych witryn
(na przykład mailto
, bitcoin
lub magnet
) lub zaczynają się od web+
, po którym następuje co najmniej jeden lub
więcej małych liter ASCII po prefiksie web+
, na przykład web+coffee
.
Aby to podkreślić, oto konkretny przykład procesu:
- Użytkownik odwiedza witrynę pod adresem
https://coffeeshop.example.com/
, która wykonuje to wywołanie:navigator.registerProtocolHandler('web+coffee', 'coffee?type=%s')
- Później, odwiedzając witrynę
https://randomsite.example.com/
, użytkownik klika link na przykład<a href="web+coffee:latte-macchiato">All about latte macchiato</a>
. - Spowoduje to otwarcie takiego adresu URL w przeglądarce:
https://coffeeshop.example.com/coffee?type=web%2Bcoffee%3A%2F%2Flatte-macchiato
Wyszukiwanie dekodowany z adresem URL, a następnie odczytuje ciąg?type=web+coffee://latte-macchiato
.
O czym jest obsługa protokołów
Obecny mechanizm rejestracji modułów obsługi protokołów URL na potrzeby aplikacji PWA polega na oferowaniu modułu obsługi protokołu.
jako część instalacji PWA przy użyciu pliku manifestu. Po zarejestrowaniu PWA jako
modułu obsługi protokołu, gdy użytkownik kliknie hiperlink o określonym schemacie, takim jak mailto
,
bitcoin
lub web+music
w przeglądarce albo aplikacji na danej platformie, zostanie otwarta zarejestrowana aplikacja PWA
i otrzymają URL. Należy zauważyć, że proponowana rejestracja oparta na pliku manifestu
tradycyjne registerProtocolHandler()
odgrywają w praktyce bardzo podobne role, choć nadal
co daje użytkownikom możliwość uzupełniania się o elementy:
- Podobieństwa to m.in. wymagania dotyczące listy systemów, które można zarejestrować, oraz nazwy i formatu parametrów itp.
- Różnice w rejestracji opartej na pliku manifestu są subtelne, ale mogą być przydatne dla użytkowników aplikacji PWA. Na przykład rejestracja PWA oparta na pliku manifestu może nie wymagać tagu oprócz instalacji PWA inicjowanej przez użytkownika.
Przypadki użycia
- W aplikacji PWA edytora tekstu użytkownik trafia w dokumencie do linku do prezentacji, takiego jak
web+presentations://deck2378465
Gdy użytkownik kliknie link, pojawi się aplikacja PWA prezentacji. automatycznie otwiera się we właściwym zakresie i wyświetla prezentację. - W aplikacji do obsługi czatu na danej platformie użytkownik w wiadomości na czacie otrzymuje link do adresu URL
magnet
. Po kliknięciu linku uruchomi się zainstalowana aplikacja PWA z torrentami i rozpocznie się pobieranie. - Użytkownik ma zainstalowaną progresywną aplikację internetową streamingu muzyki. Gdy znajomy udostępni link do utworu, np.
web+music://songid=1234&time=0:13
i użytkownik ją kliknie, aplikacja PWA do strumieniowego przesyłania muzyki są automatycznie uruchamiane w osobnym oknie.
Jak zarejestrować moduł obsługi protokołu URL na potrzeby PWA
Interfejs API rejestracji modułu obsługi protokołu URL jest ściśle modelowany
navigator.registerProtocolHandler()
Tym razem informacje są przekazywane deklaratywnie przez:
manifestu aplikacji internetowej w nowej usłudze o nazwie "protocol_handlers"
, która zawiera tablicę
obiekty z dwoma wymaganymi kluczami "protocol"
i "url"
. Fragment kodu poniżej pokazuje,
zarejestruj: web+tea
i web+coffee
. Wartościami są ciągi tekstowe zawierające adres URL modułu obsługi
wymaganą zmienną %s
dla adresu URL ze zmianą znaczenia.
{
"protocol_handlers": [
{
"protocol": "web+tea",
"url": "/tea?type=%s"
},
{
"protocol": "web+coffee",
"url": "/coffee?type=%s"
}
]
}
Rejestrowanie wielu aplikacji przy użyciu tego samego protokołu
Jeśli wiele aplikacji rejestruje się jako moduły obsługi tego samego schematu, na przykład
mailto
, system operacyjny wyświetli użytkownikowi selektor i pozwoli mu wybrać
zarejestrowanych modułów obsługi.
Ta sama aplikacja z wieloma protokołami
Ta sama aplikacja może zarejestrować się w przypadku wielu protokołów, co widać w przykładowym kodzie powyżej.
Aktualizacje aplikacji i rejestracja modułów obsługi
Rejestracje modułów obsługi są synchronizowane z najnowszą wersją pliku manifestu udostępnionej przez aplikację. OK występują 2 przypadki:
- Aktualizacja, która dodaje nowe moduły obsługi uruchamia rejestrację modułów obsługi (niezależnie od instalacji aplikacji).
- Aktualizacja, która usuwa moduły obsługi, uruchamia proces wyrejestrowania modułu obsługi (niezależnie od aplikacji) odinstalowywanie).
Debugowanie modułu obsługi protokołów w Narzędziach deweloperskich
Przejdź do sekcji Protocol Handlers (Moduły obsługi protokołów), klikając Aplikacja > Panel pliku manifestu. Dostępne opcje wyświetlić i przetestować wszystkie dostępne protokoły tutaj.
Na przykład zainstaluj tę demonstracyjną aplikację PWA. W Protocol Handlers, wpisz „americano”. i kliknij Test Protocol, aby otworzyć stronę dotyczącą kawy. w PWA.
Prezentacja
Możesz zobaczyć wersję demonstracyjną rejestracji modułu obsługi protokołu URL na potrzeby aplikacji PWA w usłudze Glitch.
- Otwórz stronę https://protocol-handler.glitch.me/, zainstaluj
PWA. Po zainstalowaniu załaduj aplikację ponownie. Przeglądarka zarejestrowała teraz PWA jako
modułu obsługi protokołu
web+coffee
z systemem operacyjnym. - W oknie z zainstalowaną aplikacją PWA kliknij link
https://protocol-handler-link.glitch.me/. Dzięki temu
otwórz nową kartę przeglądarki z 3 linkami. Kliknij pierwszy lub drugi etap (latte macchiato lub
americano). Przeglądarka wyświetli komunikat z pytaniem, czy aplikacja jest
obsługi protokołu dla protokołu
web+coffee
. Jeśli wyrazisz zgodę, aplikacja PWA otworzy się i wyświetli wybraną kawę. - Aby porównać z tradycyjnym procesem, który korzysta z
navigator.registerProtocolHandler()
, kliknij kliknij przycisk Zarejestruj moduł obsługi protokołu w aplikacji PWA. Następnie na karcie przeglądarki kliknij trzeci link. (czaj). Tak samo pojawi się prompt, ale PWA otworzy się na karcie, a nie w oknie przeglądarki. - Wyślij do siebie wiadomość w aplikacji zależnej od platformy, np. Skype w systemie Windows, z linkiem w rodzaju
<a href="web+coffee://americano">Americano</a>
i kliknij ją. Podobnie powinien otworzyć się zainstalowana aplikacja PWA.
Bezpieczeństwo
Ponieważ instalacja PWA wymaga kontekstu, obsługa protokołów dziedziczy to ustawienie. . Lista zarejestrowanych modułów obsługi protokołów nie jest w żaden sposób dostępna w sieci, nie można wykorzystać jako wektora odcisku cyfrowego.
Próby nawigacji niezainicjowane przez użytkownika
Próby nawigacji, które nie są inicjowane przez użytkownika, ale są automatyczne, mogą nie zostać otwarte aplikacji. Niestandardowy adres URL protokołu może być używany tylko w kontekście przeglądania najwyższego poziomu, ale nie można go używać na przykład .
Lista dozwolonych protokołów
Podobnie jak w registerProtocolHandler()
dostępna jest lista dozwolonych protokołów, które aplikacje mogą rejestrować
się nią zająć.
Prośba o zgodę
Przy pierwszym uruchomieniu PWA ze względu na wywołany protokół użytkownikowi wyświetla się z oknami uprawnień. W oknie dialogowym wyświetli się nazwa i pochodzenie aplikacji. Użytkownik zapyta użytkownika, czy aplikacja może obsługiwać linki z protokołu. Jeśli użytkownik odrzuci okno dialogowe z prośbą o uprawnienia, zarejestrowany moduł obsługi protokołów będzie ignorowany przez system operacyjny. Aby wyrejestrować protokół użytkownik musi odinstalować aplikację PWA, która go zarejestrowała. Przeglądarka też zostanie wyrejestrowana modułu obsługi protokołu, jeśli użytkownik wybierze opcję „Zapamiętaj mój wybór”. i wybiera „Nie zezwalaj”.
Prześlij opinię
Zespół Chromium chce poznać Twoje wrażenia dotyczące rejestracji modułu obsługi protokołu URL Progresywne aplikacje internetowe.
Opowiedz nam o konstrukcji interfejsu API
Czy jest coś, co nie działa w interfejsie API zgodnie z oczekiwaniami? Czy może brakuje tu metod lub właściwości potrzebne do realizacji pomysłu? Masz pytanie lub komentarz na temat zabezpieczeń model? 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 new.crbug.com. Podaj jak najwięcej szczegółów.
instrukcje dotyczące odtwarzania i wpisz UI>Browser>WebAppInstalls
w sekcji Komponenty.
. Usługa Glitch świetnie nadaje się do szybkiego i łatwego udostępniania poprawek.
Pokaż wsparcie dla interfejsu API
Czy planujesz użycie rejestracji modułu obsługi protokołu URL na potrzeby aplikacji PWA? Twoje publiczne wsparcie pomaga Zespół Chromium nadaje priorytet funkcjom i pokazuje innym dostawcom przeglądarek, jak ważne jest zapewnienie obsługi .
Poinformuj nas, jak zamierzasz korzystać z tego narzędzia w wątku poświęconym dysku WICG. Wyślij tweeta do
@ChromiumDev za pomocą hashtagu
#ProtocolHandler
.
i daj nam znać, gdzie i jak go używasz.
Przydatne linki
Podziękowania
Rejestracja modułu obsługi protokołu URL dla aplikacji PWA została zaimplementowana i określona przez Fabio Rocha Diego González Connor Moody i Samuel Tang z zespołu Microsoft Edge. Ten artykuł została sprawdzona przez Joe Medleya i Fabio Rocha. Baner powitalny: JJ Ying o Unsplash.