Kako dodati obavještenja u aplikaciju: u aplikaciji, e-poštom i push
Da biste dodali obavještenja web aplikaciji, počnite s obavještenjima u aplikaciji: tabelom obavještenja u bazi podataka i ikonom zvonca koja prikazuje nepročitane stavke. Dodajte e-poštu za stvari koje ljudi trebaju znati kad nisu u aplikaciji, koristeći pružaoca usluge e-pošte, a web push dodajte samo kad su pravovremena upozorenja važna, jer on treba service worker, dozvolu korisnika i, na iPhoneu, aplikaciju sačuvanu na početnom ekranu. Koje god kanale koristili, kreirajte svako obavještenje na jednom mjestu na serveru i neka korisnici biraju šta žele primati.
Ovaj vodič upoređuje kanale, prikazuje jednostavnu arhitekturu i daje upite koje možete koristiti s AI alatom za izradu aplikacija.
Glavni kanali u poređenju
| Kanal | Dopire do korisnika kad | Napor za postavljanje | Tekući trošak | Najbolje za |
|---|---|---|---|---|
| U aplikaciji (zvonce, kratke poruke) | Koriste vašu aplikaciju | Nizak | Ništa osim vaše baze podataka | Aktivnost, spominjanja, promjene statusa |
| E-pošta | Kad god provjere e-poštu | Srednji: pružalac, postavka domene | Cijena po e-poruci kod vašeg pružaoca | Računi, sažeci, sve što je važno |
| Web push | Preglednik ili instalirana web aplikacija, čak i kad je zatvorena | Srednji do visok | Obično besplatno za slanje | Upozorenja osjetljiva na vrijeme |
| SMS | Gotovo uvijek | Srednji; važe pravila o saglasnosti | Naknade po poruci | Podsjetnici za termine, hitna upozorenja |
| Alati za razgovor (Slack, Teams) | Kad su na poslu | Nizak do srednji | Obično besplatno | Interni alati i timska upozorenja |
Većini aplikacija trebaju obavještenja u aplikaciji plus e-pošta. Push i SMS vrijede kad vrijeme zaista važi, kao podsjetnik na rezervaciju ili narudžba koja je spremna.
Kako se sistem obavještenja uklapa
Držite ga jednostavnim i centralnim:
- Nešto se dogodi. Ostavljen je komentar, plaćanje ne uspije, rezervacija je sutra.
- Vaš server poziva jednu funkciju, na primjer
notify(user, type, data). - Ta funkcija provjerava korisničke postavke i upisuje red u tabelu
notifications(za zvonce). - Zatim šalje na druge kanale koje je korisnik uključio za tu vrstu: e-poštu preko vašeg pružaoca, push preko Push API-ja.
- Frontend prikazuje nepročitana obavještenja i označava ih pročitanim kad se otvore.
Jedna ulazna tačka znači da možete dodati kanal, promijeniti tekst ili poštovati postavke bez traženja po cijeloj bazi koda.
Šta čuvati
Tabela obavještenja obično treba: ID korisnika, vrstu (na primjer comment_reply), kratak naslov i tekst, link na odgovarajuću stranicu, vrijeme kreiranja i vrijeme čitanja. Posebna tabela postavki čuva koje kanale svaki korisnik želi za svaku vrstu.
Prikaz novih obavještenja
- Učitavajte pri pregledu stranice i provjeravajte svakih 30–60 sekundi. Jednostavno i pouzdano.
- Ažuriranja u realnom vremenu preko WebSocketa ili server-sent događaja djeluju trenutno, ali dodaju pokretne dijelove. Počnite s provjerom po intervalu osim ako trenutna ažuriranja ne važe.
Obavještenja e-poštom
E-pošta treba pružaoca za slanje i provjerenu domenu; detalji su u kako slati e-poštu iz aplikacije. Za obavještenja posebno:
- Šaljite sa servera, nikad s ključem pružaoca u pregledniku.
- Grupišite česte događaje. „3 nova komentara“ u jednoj poruci bolje je od tri poruke.
- Ponudite dnevni ili sedmični sažetak za aktivnost niskog prioriteta.
- Uključite link za odjavu ili postavke u e-poruke koje nisu neophodne. Pravila za marketinške e-poruke razlikuju se po državi; provjerite šta se odnosi na vas.
Web push obavještenja
Web push omogućava vašem sajtu da šalje upozorenja koja izgledaju kao obavještenja aplikacije. Prema MDN-ovoj dokumentaciji za Push API, to funkcioniše ovako:
- Vaš sajt registruje service worker, skriptu koju preglednik može izvršavati u pozadini.
- Kad korisnik pristane, service worker se pretplaćuje preko
PushManager.subscribe(). Preglednik vraća pretplatu s krajnjom tačkom i ključevima za šifrovanje. - Vaš server čuva tu pretplatu i, kad se nešto dogodi, šalje poruku na krajnju tačku, obično potpisanu VAPID ključevima (par ključeva koji identifikuje vaš server).
- Preglednik pokreće vaš service worker, koji prikazuje obavještenje, čak i ako vaša stranica nije otvorena.
MDN također napominje da krajnju tačku treba čuvati u tajnosti, jer je za slanje poruka tom korisniku dovoljno da je neko zna.
iPhone i iPad
WebKit je dodao Web Push za web aplikacije u iOS-u i iPadOS-u 16.4, uz dva uslova iz njihove najave: sajt mora biti dodan na početni ekran, a dozvola se mora tražiti kao odgovor na radnju korisnika, poput dodira na dugme Pretplati se. Dakle, na iPhoneu push stiže samo korisnicima koji su instalirali vašu web aplikaciju. Pogledajte native i progresivne web aplikacije za značenje instaliranja web aplikacije.
Dobro traženje dozvole
Nemojte pitati pri prvoj posjeti. Prvo objasnite korist („Dobijte podsjetnik sat prije časa“), zatim prikažite upit preglednika kad korisnik dodirne dugme. Ako neko odbije, preglednik vam možda neće dozvoliti da ponovo pitate, pa preuranjen upit može zauvijek izgubiti tu osobu.
Zakazana obavještenja trebaju okidač
„Podsjetnik 24 sata prije“ ili „sedmični sažetak svakog ponedjeljka“ traže nešto što se izvršava po rasporedu. To je problem pozadinskih poslova, koji je obrađen u kako pokretati pozadinske poslove. Čest obrazac: vanjski planer svakih nekoliko minuta poziva zaštićenu krajnju tačku, a ona šalje sve što je na redu.
Upiti za vaš AI alat za izradu
Počnite s obavještenjima u aplikaciji:
Dodaj obavještenja u aplikaciji. Kreiraj tabelu notifications (user, type, title, body, link, created_at, read_at). Dodaj funkciju na serveru notify(userId, type, data) koju svaka funkcionalnost poziva. Prikaži ikonu zvonca u zaglavlju s brojem nepročitanih, padajući meni s posljednjih 20, i dugme „označi sve kao pročitano“. Provjeravaj nova svakih 60 sekundi.
Zatim postavke i e-pošta:
Dodaj postavke obavještenja: za svaku vrstu (odgovori na komentare, spominjanja, naplata) neka korisnik izabere u aplikaciji, e-pošta, oboje ili ništa. notify() mora poštovati ove postavke. Šalji e-poštu preko [PROVIDER] koristeći tajnu [ENV_NAME] samo na serveru. Grupiši e-poruke o komentarima tako da jedan korisnik dobije najviše jednu e-poruku svakih 15 minuta.
Zatim push, ako ga trebate:
Dodaj opcionalni web push. Registruj service worker, generiši VAPID ključeve i privatni ključ sačuvaj kao tajnu. Dodaj dugme „Uključi obavještenja“ u postavkama koje traži dozvolu tek kad se klikne. Čuvaj svaku pretplatu po korisniku i uređaju, šalji push iz notify() kad se korisnik prijavio, i obriši pretplate koje servis za push javi kao istekle.
Česte greške
- Obavještenja razbacana po kodu. Svaka funkcionalnost šalje svoju e-poštu drukčije, a postavke se ignorišu. Koristite jednu funkciju
notify(). - Traženje dozvole za push pri učitavanju stranice. Većina ljudi odbije, a možda nećete dobiti drugu priliku.
- Nema postavki. Korisnici koji ne mogu isključiti dosadna upozorenja isključe sva ili odu.
- Slanje iz preglednika. Ključevi za e-poštu i push pripadaju serveru.
- Nečišćenje mrtvih push pretplata. Istekle pretplate se gomilaju i troše slanja.
- Osjetljivi detalji u tekstu obavještenja. Zaključani ekrani ih prikazuju. „Imate novu poruku“ je sigurnije od same poruke.
- Nema zapisa o tome šta je poslano. Kad korisnik kaže „nikad nisam dobio e-poštu“, logovi s ID-jevima poruka kod pružaoca pomažu da saznate zašto.
Kontrolna lista
- Jedna funkcija
notify()na serveru koja se koristi svuda - Tabela obavještenja sa stanjem čitanja i zvoncem s brojem nepročitanih
- Postavke kanala po vrsti, koje poštuje
notify() - E-pošta šalje se sa servera uz provjerenu domenu; sažetak ili grupisanje za česte događaje
- Dozvola za push traži se tek nakon radnje korisnika, uz objašnjenje
- Push testiran na desktopu i na iPhoneu s aplikacijom na početnom ekranu
- Istekle push pretplate uklonjene
- Nema osjetljivog sadržaja u pregledima push poruka ili e-pošte
- Zakazani podsjetnici imaju pouzdan okidač
Obavještenja na Mythexu
Mythex ne uključuje ugrađenu uslugu e-pošte ili pusha za aplikacije koje pravite, pa donosite sopstvenog pružaoca e-pošte i sami generišete push ključeve, pohranjene kao tajne projekta. Dio u aplikaciji treba samo bazu podataka projekta, koju Mythex dodaje kad to zatražite. Gradite upitima kao gore, testirajte zvonce i e-poštu u pregledu, a push testirajte na objavljenoj URL adresi, jer service workeri i push trebaju pravu HTTPS adresu. Recept u dokumentaciji Slanje e-pošte iz aplikacije ima početni upit. Mythex ne dokumentuje zakazane poslove, pa planirajte vremenske podsjetnike s vanjskim okidačem kako je opisano u kako pokretati pozadinske poslove.
Pitanja
Koja je najjednostavnija vrsta obavještenja za web aplikaciju?
Obavještenja u aplikaciji: tabela obavještenja u vašoj bazi podataka i ikona zvonca koja prikazuje nepročitana. Ona ne trebaju nikakav servis treće strane. E-pošta je sljedeći korak i treba pružaoca usluge e-pošte.
Može li web aplikacija slati push obavještenja na iPhone?
Može, uz ograničenja. WebKit je dodao Web Push za web aplikacije na početnom ekranu u iOS-u i iPadOS-u 16.4, pa korisnik prvo mora dodati vašu web aplikaciju na početni ekran, a dozvolu treba tražiti nakon dodira, na primjer na dugmetu Pretplati se.
Rade li push obavještenja kad je web stranica zatvorena?
Da. Push API isporučuje poruke service workeru vašeg sajta, a preglednik ga pokrene kad stigne poruka, tako da stranica ne mora biti otvorena. Korisnik prvo mora dati dozvolu.
Kako spriječiti da obavještenja iritiraju korisnike?
Obavještavajte samo o stvarima koje korisniku znače, grupišite nizove u jednu poruku, neka ljudi biraju kanale po vrsti u postavkama, i tražite dozvolu za push tek nakon što vide zašto je korisna.