Vodiči

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

KanalDopire do korisnika kadNapor za postavljanjeTekući trošakNajbolje za
U aplikaciji (zvonce, kratke poruke)Koriste vašu aplikacijuNizakNišta osim vaše baze podatakaAktivnost, spominjanja, promjene statusa
E-poštaKad god provjere e-poštuSrednji: pružalac, postavka domeneCijena po e-poruci kod vašeg pružaocaRačuni, sažeci, sve što je važno
Web pushPreglednik ili instalirana web aplikacija, čak i kad je zatvorenaSrednji do visokObično besplatno za slanjeUpozorenja osjetljiva na vrijeme
SMSGotovo uvijekSrednji; važe pravila o saglasnostiNaknade po poruciPodsjetnici za termine, hitna upozorenja
Alati za razgovor (Slack, Teams)Kad su na posluNizak do srednjiObično besplatnoInterni 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:

  1. Nešto se dogodi. Ostavljen je komentar, plaćanje ne uspije, rezervacija je sutra.
  2. Vaš server poziva jednu funkciju, na primjer notify(user, type, data).
  3. Ta funkcija provjerava korisničke postavke i upisuje red u tabelu notifications (za zvonce).
  4. 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.
  5. 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:

  1. Vaš sajt registruje service worker, skriptu koju preglednik može izvršavati u pozadini.
  2. Kad korisnik pristane, service worker se pretplaćuje preko PushManager.subscribe(). Preglednik vraća pretplatu s krajnjom tačkom i ključevima za šifrovanje.
  3. 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).
  4. 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.

Mythex · Pricing · Izradite bilo šta uz AI · Šabloni za web stranice i aplikacije · Mythex u poređenju · Rječnik izrade aplikacija uz AI · Besplatni alati za izradu aplikacija uz AI · English

English አማርኛ العربية Български বাংলা Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 Lietuvių Latviešu Македонски മലയാളം Монгол मराठी Bahasa Melayu မြန်မာ Norsk bokmål Nederlands ਪੰਜਾਬੀ Polski Português (Brasil) Português (Portugal) Română Русский Slovenčina Slovenščina Soomaali Shqip Srpski Svenska Kiswahili தமிழ் తెలుగు ไทย Tagalog Türkçe Українська اردو Tiếng Việt 简体中文 繁體中文(香港) 繁體中文(台灣)