Przejdź do głównej zawartości

Powiadomienia push

Jonot wysyła klientom powiadomienie systemowe, gdy ich bilet przechodzi w stan CALLED — nawet gdy karta przeglądarki działa w tle lub telefon jest zablokowany. Powiadomienia są wysyłane również, gdy pominięty bilet zostaje przywołany, a następnie ponownie wywołany.

  1. Klient zamierza dołączyć do kolejki i widzi ekran wyboru kolejki.
  2. Nad listą kolejek pojawia się karta zgody na powiadomienia push — klient dotyka Powiadom mnie i udziela przeglądarce uprawnienia przed dołączeniem.
  3. Przeglądarka klienta rejestruje subskrypcję Web Push.
  4. Klient dołącza do kolejki i otrzymuje bilet. Subskrypcja jest powiązana z biletem po stronie serwera.
  5. Gdy stanowisko obsługi wywołuje bilet, serwer wysyła wiadomość push do wszystkich aktywnych subskrypcji dla tego biletu.
  6. Urządzenie klienta budzi się i wyświetla powiadomienie systemowe z numerem biletu, nazwą kolejki i lokalizacją. Dotknięcie powiadomienia otwiera ekran biletu.
  7. Subskrypcje są automatycznie usuwane, gdy bilet osiąga stan końcowy (COMPLETED, CANCELED lub NO_SHOW) albo gdy punkt końcowy push wygasa (przeglądarka wypisała się z subskrypcji / uprawnienie zostało cofnięte).

Klienci, którzy nie wyrazili zgody na ekranie wyboru kolejki, mogą to zrobić z ekranu biletu — karta powiadomień jest wyświetlana, gdy bilet jest w stanie WAITING lub CALLED.

Jeśli bilet klienta zostaje pominięty (przechodzi w stan SKIPPED), jego subskrypcja push pozostaje aktywna. Gdy personel następnie przywoła bilet (przenosząc go z powrotem do stanu WAITING), a potem go wywoła, klient otrzymuje powiadomienie push — nawet jeśli zamknął stronę biletu.

Oznacza to, że klient, który wyraził zgodę, a następnie odszedł, nadal zostanie powiadomiony, gdy personel go ponownie wywoła — bez konieczności trzymania przeglądarki otwartej.

StanWidok
Monit (uprawnienie jeszcze nie zażądane)Karta CTA zgody (ekran wyboru kolejki + ekran biletu)
Uprawnienie przyznane + zasubskrybowanoPotwierdzenie „Powiadomimy Cię — możesz zamknąć tę kartę”
Uprawnienie odrzuconeWskazówki zapasowe + link do ustawień przeglądarki
Przeglądarka nieobsługiwanaNic (pomijane bez powiadomienia)

Po zasubskrybowaniu przeglądarka dostarcza powiadomienia push nawet wtedy, gdy karta jest zamknięta lub telefon działa w tle — klienci nie muszą trzymać strony biletu otwartej.

Jeśli urządzenie klienta traci połączenie WebSocket przy otwartej stronie biletu (na przykład po krótkiej utracie łączności), na ekranie pojawia się pigułka Utracono połączenie — ponowne łączenie…. Jest ona pokazywana tylko dla biletów w stanie nie-końcowym i nigdy przy początkowym wczytaniu strony. Połączenie jest przywracane automatycznie — nie jest wymagane żadne ręczne działanie.

iOS Safari 16.4+ obsługuje Web Push, ale tylko wtedy, gdy aplikacja została dodana do ekranu głównego (tryb samodzielny). W zwykłej przeglądarce iOS Safari:

  • Ekran wyboru kolejki pokazuje nad listą kolejek kartę z instrukcją Dodaj Jonot do ekranu głównego.
  • Po dodaniu do ekranu głównego klient otwiera Jonot ponownie z ikony na ekranie głównym, a wtedy pojawia się standardowe CTA zgody.

Subskrypcje push są powiązane z jednym biletem. Są ściśle transakcyjne: jedna subskrypcja istnieje przez cały cykl życia jednego biletu. Nie ma mechanizmu do wysyłania powiadomień promocyjnych ani masowych — tylko zdarzenia CALLED biletu wywołują powiadomienie.

Podstawa RODO / zgody: subskrypcja jest powiązana z biletem, który klient właśnie utworzył. Ta sama podstawa zgody (prawnie uzasadniony interes / wykonanie umowy), która obejmuje sam bilet, obejmuje też to pojedyncze powiadomienie. Nie jest wymagane odrębne zebranie zgody.

  • Standardy: Web Push z szyfrowaniem ładunku zgodnie z RFC 8291 (AES-128-GCM) i żądaniami uwierzytelnianymi VAPID zgodnie z RFC 8292.
  • Przechowywanie subskrypcji: każda subskrypcja jest powiązana z jednym biletem i jest automatycznie usuwana, gdy ten bilet osiąga stan końcowy.