Kako dodati obvestila v svojo aplikacijo: v aplikaciji, e-pošta in potisna obvestila
Da aplikaciji dodate obvestila, začnite z obvestili v aplikaciji: tabelo obvestil v bazi podatkov in ikono zvončka, ki prikazuje neprebrane elemente. Dodajte e-pošto za stvari, ki jih ljudje morajo vedeti, ko jih ni v aplikaciji, z uporabo ponudnika e-pošte, spletna potisna obvestila pa dodajte samo tedaj, ko so takojšnja opozorila res pomembna, saj zahtevajo servisnega delavca, dovoljenje uporabnika in pri iPhonu shranjeno aplikacijo na začetnem zaslonu. Ne glede na uporabljene kanale ustvarjajte vsako obvestilo na enem mestu na strežniku in uporabnikom pustite, da izberejo, kaj želijo prejemati.
Ta vodnik primerja kanale, prikazuje preprosto arhitekturo in ponuja pozive, ki jih lahko uporabite z graditelji aplikacij na UI.
Glavni kanali v primerjavi
| Kanal | Doseže uporabnike, ko | Napor za nastavitev | Tekoči stroški | Najboljše za |
|---|---|---|---|---|
| V aplikaciji (zvonček, kratka sporočila) | Uporabljajo vašo aplikacijo | Nizek | Nič razen vaše baze podatkov | Aktivnost, omembe, spremembe stanja |
| E-pošta | Kadar koli preverijo e-pošto | Srednji: ponudnik, nastavitev domene | Cena na e-poštno sporočilo pri ponudniku | Računi, povzetki, vse pomembno |
| Spletna potisna obvestila | Brskalnik ali nameščena spletna aplikacija, tudi ko je zaprta | Srednji do visok | Običajno brezplačno pošiljanje | Časovno občutljiva opozorila |
| SMS | Skoraj vedno | Srednji; veljajo pravila o soglasju | Stroški na sporočilo | Opomniki za termine, nujna opozorila |
| Klepetna orodja (Slack, Teams) | So v službi | Nizek do srednji | Običajno brezplačno | Interna orodja in opozorila ekipe |
Večina aplikacij potrebuje obvestila v aplikaciji in e-pošto. Potisna obvestila in SMS sta vredna truda, kadar je čas res pomemben, na primer opomnik za rezervacijo ali naročilo, ki je pripravljeno.
Kako se sistem obvestil sestavi
Ohranite ga preprostega in centralnega:
- Nekaj se zgodi. Objavljen je komentar, plačilo ne uspe, termin je jutri.
- Vaš strežnik pokliče eno funkcijo, na primer
notify(user, type, data). - Ta funkcija preveri uporabnikove nastavitve in zapiše vrstico v tabelo
notifications(za zvonček). - Nato pošlje na druge kanale, ki jih je uporabnik vklopil za to vrsto: e-pošto prek vašega ponudnika, potisna obvestila prek Push API-ja.
- Frontend prikaže neprebrana obvestila in jih označi kot prebrana, ko jih uporabnik odpre.
Zaradi ene vstopne točke lahko dodate kanal, spremenite besedilo ali upoštevate nastavitve, ne da bi iskali po celotni kodi.
Kaj shraniti
Tabela obvestil običajno potrebuje: ID uporabnika, vrsto (na primer comment_reply), kratek naslov in besedilo, povezavo do ustrezne strani, čas ustvarjanja in čas branja. Ločena tabela nastavitev hrani, kateri kanali za vsako vrsto obvestila so uporabniku všeč.
Prikaz novih obvestil
- Nalaganje ob ogledu strani in poizvedovanje vsakih 30–60 sekund. Preprosto in zanesljivo.
- Posodobitve v realnem času z WebSockets ali strežniškimi dogodki delujejo takoj, vendar dodajo premikajoče se dele. Začnite s poizvedovanjem, razen če je takojšnja posodobitev res pomembna.
E-poštna obvestila
E-pošta potrebuje ponudnika za pošiljanje in preverjeno domeno; podrobnosti so v kako pošiljati e-pošto iz aplikacije. Za obvestila posebej:
- Pošiljajte s strežnika, nikoli s ključem ponudnika v brskalniku.
- Združujte pogoste dogodke. „3 novi komentarji“ v eni e-pošti je boljše kot trije e-poštni dopisi.
- Ponudite dnevni ali tedenski povzetek za dejavnost z nizko prioriteto.
- Vključite povezavo za odjavo ali nastavitve v nebistveno e-pošto. Pravila za tržna e-poštna sporočila se po državah razlikujejo; preverite, kaj velja za vas.
Spletna potisna obvestila
Spletna potisna obvestila omogočajo, da vaša stran pošilja opozorila, ki se prikažejo kot obvestila aplikacije. Po dokumentaciji Push API-ja na MDN deluje takole:
- Vaša stran registrira servisnega delavca, skript, ki ga brskalnik lahko izvaja v ozadju.
- Ko uporabnik privoli, servisni delavec naroči prek
PushManager.subscribe(). Brskalnik vrne naročnino z naslovom (endpoint) in šifrirnimi ključi. - Vaš strežnik shrani to naročnino in ko se nekaj zgodi, pošlje sporočilo na naslov, običajno podpisano s ključi VAPID (par ključev, ki identificira vaš strežnik).
- Brskalnik zažene vašega servisnega delavca, ki prikaže obvestilo, tudi če vaša stran ni odprta.
MDN tudi opozarja, da naj bo naslov skrivnost, saj je za pošiljanje sporočil temu uporabniku dovolj že poznavanje naslova.
iPhone in iPad
WebKit je v iOS in iPadOS 16.4 dodal potisna obvestila za spletne aplikacije, z dvema pogojema iz njegove napovedi: stran mora biti dodana na začetni zaslon, dovoljenje pa je treba zahtevati kot odziv na dejanje uporabnika, na primer dotik gumba Naroči se. Torej na iPhonu potisna obvestila dosežejo samo uporabnike, ki so namestili vašo spletno aplikacijo. Za to, kaj pomeni namestitev spletne aplikacije, glejte nativne aplikacije proti progresivnim spletnim aplikacijam.
Dobro zahtevati dovoljenje
Ne sprašujte ob prvem obisku. Najprej razložite korist („Prejmite opomnik uro pred vašim predavanjem“), nato pa pokažite pozivnik brskalnika, ko uporabnik klikne gumb. Če nekdo zavrne, vam lahko brskalnik ne dovoli spraševati ponovno, zato lahko preuranjen poziv uporabnika izgubi za vedno.
Načrtovana obvestila potrebujejo sprožilec
„Opomnik 24 ur prej“ ali „tedenski povzetek vsak ponedeljek“ potrebujeta nekaj, kar teče po urniku. To je težava z ozadjskimi opravili, ki jo obravnava kako zagnati ozadjska opravila. Pogost vzorec: zunanji načrtovalec vsakih nekaj minut pokliče zaščitenu končno točko, ta pa pošlje vse, kar je na vrsti.
Pozivi za vašega graditelja z UI
Začnite z obvestili v aplikaciji:
Dodaj obvestila v aplikaciji. Ustvari tabelo notifications (user, type, title, body, link, created_at, read_at). Dodaj strežniško funkcijo notify(userId, type, data), ki jo kliče vsaka funkcija. V glavi prikaži ikono zvončka z številom neprebranih, spustni seznam zadnjih 20 in gumb „označi vse kot prebrano“. Vsakih 60 sekund preverjaj nova.
Nato nastavitve in e-pošta:
Dodaj nastavitve obvestil: za vsako vrsto (odgovori na komentarje, omembe, zaračunavanje) naj uporabnik izbere v aplikaciji, e-pošto, oboje ali nič. notify() mora to upoštevati. Pošiljaj e-pošto prek [PONUDNIK] s skrivnostjo [IME_SPREMENLJIVKE] samo na strežniku. Združi e-poštna obvestila o komentarjih, da en uporabnik prejme največ eno e-pošto na 15 minut.
Nato potisna obvestila, če jih potrebujete:
Dodaj izbirna potisna obvestila. Registriraj servisnega delavca, ustvari ključe VAPID in zasebni ključ shrani kot skrivnost. V nastavitvah dodaj gumb „Omogoči obvestila“, ki zahteva dovoljenje šele, ko je kliknjen. Shrani vsako naročnino za uporabnika in napravo, pošiljaj potisna obvestila iz notify(), ko je uporabnik privolil, in izbriši naročnine, ki jih potisna storitev javi kot potekle.
Pogoste napake
- Obvestila raztresena po kodi. Vsaka funkcija pošilja svojo e-pošto na svoj način, nastavitve pa se ignorirajo. Uporabite eno funkcijo
notify(). - Zahtevanje dovoljenja za potisna obvestila ob nalaganju strani. Večina ljudi zavrne, druge priložnosti pa morda ne dobite.
- Brez nastavitev. Uporabniki, ki ne morejo izklopiti moteče opozorila, izklopijo vsa ali odidejo.
- Pošiljanje iz brskalnika. Ključi za e-pošto in potisna obvestila sodijo na strežnik.
- Nečiščenje mrtvih potisnih naročnin. Potekle naročnine se kopičijo in zapravljajo pošiljanja.
- Občutljive podrobnosti v besedilu obvestila. Zaklenjeni zasloni jih prikažejo. „Imate novo sporočilo“ je varnejše kot samo sporočilo.
- Brez zapisa, kaj je bilo poslano. Ko uporabnik reče „nisem dobil e-pošte“, vam dnevniki z ID-ji sporočil ponudnika pomagajo ugotoviti, zakaj.
Kontrolni seznam
- Ena strežniška funkcija
notify(), uporabljena povsod - Tabela obvestil s stanjem branja in zvonček s številom neprebranih
- Nastavitve kanalov za vsako vrsto, ki jih upošteva
notify() - E-pošta poslana s strežnika s preverjeno domeno; povzetek ali združevanje za pogoste dogodke
- Dovoljenje za potisna obvestila zahtevano šele po dejanju uporabnika, s pojasnilom
- Potisna obvestila preizkušena na namizju in na iPhonu z aplikacijo na začetnem zaslonu
- Potekle potisne naročnine odstranjene
- Brez občutljive vsebine v predogledih potisnih obvestil ali e-pošte
- Načrtovani opomniki imajo zanesljiv sprožilec
Obvestila na Mythexu
Mythex za aplikacije, ki jih gradite, ne vključuje vgrajene storitve za e-pošto ali potisna obvestila, zato prinesete lastnega ponudnika e-pošte in ustvarite lastne potisne ključe, shranjene kot skrivnosti projekta. Del z obvestili v aplikaciji potrebuje samo bazo podatkov projekta, ki jo Mythex doda, ko jo zahtevate. Gradite s pozivi, kot so zgoraj, zvonček in e-pošto preizkusite v predogledu, potisna obvestila pa na objavljenem naslovu URL, saj servisni delavci in potisna obvestila potrebujejo pravi naslov HTTPS. Recept v dokumentaciji pošiljanje e-pošte iz aplikacije vsebuje začetni poziv. Mythex načrtovanih opravil ne dokumentira, zato načrtujte časovne opomnike z zunanjim sprožilcem, kot je opisano v kako zagnati ozadjska opravila.
Vprašanja
Katero vrsto obvestil je najlažje dodati spletni aplikaciji?
Obvestila v aplikaciji: tabelo obvestil v bazi podatkov in ikono zvončka, ki prikazuje neprebrana. Ne potrebujejo storitve tretje osebe. Naslednji korak je e-pošta, ki potrebuje ponudnika e-pošte.
Ali lahko spletna aplikacija pošilja potisna obvestila na iPhone?
Da, z omejitvami. WebKit je v iOS in iPadOS 16.4 dodal spletna potisna obvestila za spletne aplikacije na začetnem zaslonu, zato mora uporabnik najprej dodati vašo spletno aplikacijo na začetni zaslon, dovoljenje pa je treba zahtevati po dotiku, na primer na gumbu Naroči se.
Ali potisna obvestila delujejo, ko je spletna stran zaprta?
Da. Push API pošilja sporočila servisnemu delavcu vaše strani, ki ga brskalnik zažene, ko sporočilo prispe, zato stran ne sme biti odprta. Uporabnik mora najprej dati dovoljenje.
Kako preprečim, da bi obvestila uporabnike motila?
Obveščajte samo o stvareh, ki jih uporabnika zanimajo, skupine sporočil združite v eno, naj ljudje v nastavitvah izberejo kanal za vsako vrsto obvestila, in dovoljenje za potisna obvestila zahtevajte šele, ko so videli, zakaj so uporabna.