Omówienie powiadomień push

Podstawowe informacje o tym, czym są powiadomienia push, dlaczego warto ich używać i jak działają.

Czym są powiadomienia push?

Komunikaty push pozwalają zwrócić uwagę odbiorców nawet jeśli w ogóle nie korzystają z witryny. Są to reklamy push. wiadomości, ponieważ można je „wypychać” nawet wtedy, gdy są oni nieaktywny. Porównaj Push technologia w narzędziu Pull technologii, aby to zrozumieć. o dalszym rozwoju tej koncepcji.

Powiadomienia przedstawiają użytkownikowi niewielkie fragmenty informacji. Strony mogą używać powiadomienia, aby informować użytkowników o ważnych, pilnych zdarzeniach lub działaniach. które musi wykonać użytkownik. Wygląd i sposób powiadomień różni się w zależności od platformy:

Przykłady powiadomień na urządzeniach z macOS i Androidem
Przykłady powiadomień na urządzeniach z macOS i Androidem.

Komunikaty push i powiadomienia to 2 oddzielne, ale uzupełniające się technologie. Push to technologia wysyłania wiadomości z Twojego serwera do użytkowników, nawet jeśli gdy nie korzystają aktywnie z witryny. Powiadomienia to technologia wyświetlając przekazane informacje na urządzeniu użytkownika. Możesz użyć funkcji powiadomienia, nie używając wiadomości push. Pewnego dnia może być także możliwe użycie funkcji wiadomości push bez powiadomień widocznych dla użytkowników (ciche wiadomości push), ale przeglądarki na którym jest to niedozwolone. W praktyce są one zwykle używane razem. Użytkownicy bez wiedzy technicznej prawdopodobnie nie zrozumieją różnicy między push wiadomości i powiadomienia. W tej kolekcji, gdy Powiadomienia push. To połączenie przekazywania wiadomości. a potem wyświetla go jako powiadomienie. Kiedy mówimy Wiadomości push nie mamy na myśli samopoczucia technologii. A gdy mówimy powiadomienia ponieważ mamy na myśli technologię powiadomień.

Dlaczego warto korzystać z powiadomień push?

  • Z punktu widzenia użytkowników powiadomienia push to sposób na otrzymywanie natychmiastowych, trafnych, i dokładne informacje.
  • Dla Ciebie (właściciela witryny) powiadomienia push to sposób na zwiększenie zaangażowanie użytkowników.
.

Jak działają powiadomienia push?

Ogólnie rzecz biorąc, kluczowe kroki związane z wdrażaniem powiadomień push to:

  1. dodać logikę klienta, aby poprosić użytkownika o zgodę na wysyłanie powiadomień push; a następnie wysyłanie informacji o identyfikatorze klienta do Twojego serwera, by przechowywać je w bazie danych.
  2. Dodano funkcje logiczne serwera do wysyłania wiadomości do urządzeń klienckich.
  3. Dodanie logiki klienta do odbierania wiadomości przekazanych na urządzenie i wyświetlanie ich jako powiadomień.

Dokładniejsze informacje znajdziesz w dalszej części tej strony.

Uzyskiwanie uprawnień do wysyłania powiadomień push

Po pierwsze, Twoja witryna musi uzyskać zgodę użytkownika na wysyłanie powiadomień push. Powinno to być aktywowane gestem użytkownika, na przykład kliknięciem przycisku Tak. obok promptu Do you want to receive push notifications?. Po potwierdzeniu zadzwoń do: Notification.requestPermission(). System operacyjny lub przeglądarka na urządzeniu użytkownika prawdopodobnie wyświetli jakiś interfejs, by formalnie potwierdzić, że użytkownik chce włączyć powiadomienia push. Ten interfejs różni się w zależności od platformy.

Subskrybowanie powiadomień push klienta

Gdy otrzymasz zgodę, Twoja witryna musi rozpocząć proces zasubskrybowanie powiadomień push. Służą do tego JavaScript, za pomocą interfejsu Push API. Musisz podać publiczny klucz uwierzytelniania w trakcie procesu subskrypcji. Więcej informacji na ten temat znajdziesz później. Po rozpoczynasz proces subskrypcji, przeglądarka wysyła żądanie sieciowe do usługi sieciowej nazywanej usługą push, o której także dowiesz się więcej później.

Zakładając, że subskrypcja się udała, przeglądarka zwraca PushSubscription obiektu. Te dane należy przechowywać przez dłuższy czas. Zwykle odbywa się to przez wysłanie informacji do kontrolowanego przez Ciebie serwera, a następnie serwer do przechowywania ich w bazie danych.

Uzyskaj uprawnienia do wysyłania wiadomości push. Pobierz PushSubscription. Wyślij
PushSubscription na serwerze.

Wyślij wiadomość push

Serwer nie wysyła komunikatu push bezpośrednio do klienta. O robi to push service. Usługa push to usługa sieciowa kontrolowana przez dostawcy przeglądarki użytkownika. Gdy chcesz wysłać do klienta powiadomienie push , aby wysłać żądanie usługi sieciowej do usługi push. Usługa sieciowa żąda, wysyłane do usługi push to żądanie protokołu Web push. Żądanie protokołu web push powinno zawierać:

  • Jakie dane należy zawrzeć w wiadomości.
  • Klient, do którego ma zostać wysłana wiadomość.
  • Instrukcje dotyczące sposobu dostarczania wiadomości przez usługę push. Na przykład: może określić, że usługa push powinna przestać próbować wysłać wiadomość po 10 minutach.

Normalnie żądania są wysyłane przez protokół Web push przez serwer, który kontrolujesz. Oczywiście Twój serwer nie musi tworzyć surowego żądania usługi sieciowej, Istnieją biblioteki, które mogą to załatwić, takie jak web-push-libs. Mechanizmem bazowym jest jednak żądania usługi sieciowej przez HTTP.

Serwer wysyła żądanie protokołu Web push do usługi push, a usługa push wysyła wiadomość do urządzenia użytkownika.

Usługa push odbiera żądanie, uwierzytelnia je i kieruje do odpowiedniego klienta. Jeśli przeglądarka klienta jest offline, usługa umieszcza komunikat push w kolejce do czasu przejścia przeglądarki w tryb online.

Każda przeglądarka używa dowolnej usługi push. Ty jako programista witryn nie mają nad tym kontroli. To nie jest problem, ponieważ protokół web push jest standaryzowane. Innymi słowy, nie musisz wiedzieć, która usługa push jest używana przez dostawcę przeglądarki. . Musisz tylko upewnić się, że Twoje żądanie protokołu Web push jest zgodne ze specyfikacją. Specyfikacja wskazuje między innymi, że żądanie musi zawierać określone nagłówki a dane muszą być wysyłane jako strumień bajtów.

Musisz się jednak upewnić, że wysyłasz protokół Web push do właściwej usługi push. Dane PushSubscription tworzone przez przeglądarka zwracana podczas procesu subskrypcji zapewnia i informacjami o nich. Obiekt PushSubscription wygląda tak:

{
  "endpoint": "https://fcm.googleapis.com/fcm/send/c1KrmpTuRm…",
  "expirationTime": null,
  "keys": {
    "p256dh": "BGyyVt9FFV…",
    "auth": "R9sidzkcdf"
  }
}

Domena endpoint jest zasadniczo usługą push. Ścieżka parametru endpoint to informacje o identyfikatorze klienta, które pomagają usłudze push określić dokładnie do którego klienta ma zostać przekazana wiadomość.

Interfejsy keys są używane do szyfrowania, co zostało wyjaśnione poniżej.

Szyfrowanie wiadomości push

Dane wysyłane do usługi push muszą być zaszyfrowane. Zapobiega to usłudze push, tak aby nie mogła wyświetlać danych wysyłanych do klienta. Pamiętaj, że to dostawca przeglądarki decyduje, której usługi push użyć. usługa push może teoretycznie być niebezpieczna lub niebezpieczna. Serwer musi używać protokół keys udostępniony w PushSubscription do szyfrowania protokołu web push żądań.

Podpisywanie żądań protokołu Web push

Usługa push uniemożliwia innym osobom wysyłanie wiadomości na Twój użytkowników. Technicznie nie trzeba tego robić, ale najprostszą metodą jest to, Chrome go wymaga. W przeglądarce Firefox jest opcjonalny. Inne przeglądarki mogą go wymagać w przyszłości.

Ten przepływ pracy obejmuje klucz prywatny i klucz publiczny, które są unikalne dla Twojego aplikacji. Proces uwierzytelniania wygląda mniej więcej tak:

  • Klucz prywatny i publiczny generuje się jednorazowo. Kombinacja klucza prywatnego i publicznego jest nazywany kluczy serwera aplikacji. Mogą być też nazywane VAPID . VAPID to specyfikacji definiującej ten proces uwierzytelniania.
  • Gdy zasubskrybujesz powiadomienia push z kodu JavaScript, musisz podać swój klucz publiczny. Gdy usługa push generuje endpoint dla urządzenia, łączy podany klucz publiczny z endpoint.
  • Wysyłając żądanie protokołu Web push, podpisujesz niektóre informacje JSON za pomocą klucza prywatnego.
  • Gdy usługa push otrzymuje żądanie internetowego protokołu push, używa zapisanego za pomocą klucza publicznego do uwierzytelniania podpisanych informacji. Jeśli podpis jest ważny będzie wiedzieć, że żądanie pochodzi od serwera z zgodny klucz prywatny.

Dostosowywanie sposobu dostarczania wiadomości push

Specyfikacja żądania internetowego protokołu push określa też parametry, które pozwalają dostosować sposób, w jaki usługa push próbuje wysłać wiadomość push do klienta. Możesz na przykład dostosować:

  • Wartość TTL wiadomości, która określa, jak długo usługa push powinna próba dostarczenia wiadomości.
  • Pilność wiadomości, która jest przydatna, jeśli usługa push żywotności baterii klienta przez dostarczanie tylko wiadomości o wysokim priorytecie.
  • Temat wiadomości, który zastępuje wszystkie oczekujące wiadomości tego samego tematu. z najnowszą wiadomością.

Odbieraj przekazywane wiadomości i wyświetlaj je jako powiadomienia.

Po wysłaniu do usługi push żądania internetowego protokołu push usługa zachowuje żądanie oczekuje w kolejce do czasu wystąpienia jednego z tych zdarzeń:

  1. Klient przechodzi w tryb online, a usługa push dostarcza komunikat push.
  2. Wiadomość wygaśnie.

Gdy przeglądarka klienta otrzyma przekazaną wiadomość, odszyfrowuje ją i wysyła zdarzenie push do Twojej usługi instancji roboczej. Skrypt service worker jest który może działać w tle, nawet jeśli witryna nie jest otwarta lub przeglądarka jest zamknięta. W zdarzeniu push Twojego skryptu service worker moduł obsługi, który wywołuje ServiceWorkerRegistration.showNotification(), aby wyświetlić informacje jako powiadomienie.

Wiadomość dotrze na urządzenie. Przeglądarka wybudza skrypt service worker. Zdarzenie push jest wysyłane.

Co dalej

Ćwiczenia z kodowania