Kuinka lisätä ilmoitukset sovellukseesi: sovelluksen sisäiset, sähköposti ja push
Kun haluat lisätä ilmoituksia web-sovellukseen, aloita sovelluksen sisäisistä ilmoituksista: tietokantataulu ilmoituksille ja kellokuvake, joka näyttää lukemattomat. Lisää sähköposti asioille, joista ihmisten pitää tietää ollessaan poissa, sähköpostipalveluntarjoajan avulla, ja lisää web push vain silloin, kun ajoitetuilla hälytyksillä on oikeasti merkitystä, koska se vaatii service workerin, käyttäjän luvan ja iPhonessa sovelluksen tallentamisen aloitusnäytölle. Mitä kanavia tahansa käytätkin, luo jokainen ilmoitus yhdessä paikassa palvelimella ja anna käyttäjien valita, mitä he haluavat saada.
Tässä oppaassa vertaillaan kanavia, esitellään yksinkertainen arkkitehtuuri ja annetaan kehotteita, joita voit käyttää tekoälyllä toimivan sovellusrakentajan kanssa.
Pääkanavat vertailussa
| Kanava | Tavoittaa käyttäjät, kun | Käyttöönoton vaiva | Käyttökustannus | Parhaiten sopii |
|---|---|---|---|---|
| Sovelluksen sisäinen (kello, ilmoitusviestit) | He käyttävät sovellustasi | Vähäinen | Ei muuta kuin tietokanta | Toiminta, maininnat, tilamuutokset |
| Sähköposti | Milloin tahansa, kun he tarkistavat sähköpostinsa | Keskisuuri: palveluntarjoaja, domainin asetukset | Palveluntarjoajan hinnoittelu per viesti | Kuitit, koosteet, kaikki tärkeä |
| Web push | Selaimessa tai asennetussa web-sovelluksessa, myös kun se on suljettu | Keskisuuri tai suuri | Yleensä ilmainen lähettää | Aikasidonnaiset hälytykset |
| SMS | Lähes aina | Keskisuuri; suostumussäännöt koskevat | Viestikohtaiset maksut | Ajanvaraukset muistutuksina, kiireelliset hälytykset |
| Chat-työkalut (Slack, Teams) | He ovat töissä | Vähäinen tai keskisuuri | Yleensä ilmainen | Sisäiset työkalut ja tiimihälytykset |
Useimmat sovellukset tarvitsevat sovelluksen sisäisen ilmoituksen ja sähköpostin. Push ja SMS kannattavat, kun ajoitus todella ratkaisee, kuten varauksen muistutus tai tilaus, joka on valmis.
Miten ilmoitusjärjestelmä toimii kokonaisuudessa
Pidä se yksinkertaisena ja keskitettynä:
- Jotain tapahtuu. Kommentti kirjoitetaan, maksu epäonnistuu, varaus on huomenna.
- Palvelimesi kutsuu yhtä funktiota, esimerkiksi
notify(user, type, data). - Funktio tarkistaa käyttäjän asetukset ja kirjoittaa rivin
notifications-tauluun (kelloa varten). - Sen jälkeen se lähettää viestin muille kanaville, jotka käyttäjä on ottanut tälle tyypille käyttöön: sähköpostin palveluntarjoajasi kautta, pushin Push API:n kautta.
- Käyttöliittymä näyttää lukemattomat ilmoitukset ja merkitsee ne luetuiksi, kun ne avataan.
Yksi sisäänkäyntipiste tarkoittaa, että voit lisätä kanavan, muuttaa sanamuotoa tai kunnioittaa asetuksia etsimättä koodista kaikkea.
Mitä tallentaa
Ilmoitustaulu tarvitsee yleensä käyttäjätunnuksen, tyypin (esimerkiksi comment_reply), lyhyen otsikon ja leipätekstin, linkin asiaankuuluvalle sivulle, luontiajan ja lukuajan. Erillinen asetustaulu kertoo, mitä kanavia kukin käyttäjä haluaa kullekin tyypille.
Uusien ilmoitusten näyttäminen
- Lataa sivun katselun yhteydessä ja kysy 30–60 sekunnin välein. Yksinkertainen ja luotettava.
- Reaaliaikaiset päivitykset WebSocketsilla tai palvelinlähetteisillä tapahtumilla tuntuvat välittömiltä, mutta lisäävät liikkuvia osia. Aloita kyselystä, ellei välittömyys ole tärkeää.
Sähköpostiilmoitukset
Sähköposti tarvitsee lähetyspalvelun ja vahvistetun domainin; yksityiskohdat ovat ohjeessa sähköpostien lähettämisestä sovelluksestasi. Ilmoituksia varten erityisesti:
- Lähetä palvelimelta, ei koskaan palveluntarjoajan avaimen kanssa selaimesta.
- Yhdistä tiheät tapahtumat. "3 uutta kommenttia" yhdessä sähköpostissa on parempi kuin kolme sähköpostia.
- Tarjoa päivittäinen tai viikoittainen kooste vähän tärkeälle toiminnalle.
- Lisää peruutus- tai asetuslinkki ei-välttämättömään sähköpostiin. Markkinointisähköpostien säännöt vaihtelevat maittain; tarkista, mitkä koskevat sinua.
Web push -ilmoitukset
Web push antaa sivustollesi mahdollisuuden lähettää hälytyksiä, jotka näkyvät kuten sovellusilmoitukset. MDN:n Push API -dokumentaation mukaan se toimii näin:
- Sivustosi rekisteröi service workerin, skriptin, jonka selain voi ajaa taustalla.
- Käyttäjän hyväksymisen jälkeen service worker tilaa
PushManager.subscribe()-kutsulla. Selain palauttaa tilauksen, jossa on päätepiste ja salausavaimet. - Palvelimesi tallentaa tilauksen ja kun jotain tapahtuu, se lähettää viestin päätepisteeseen, yleensä allekirjoitettuna VAPID-avaimilla (palvelimesi tunnistava avainpari).
- Selain käynnistää service workerisi, joka näyttää ilmoituksen, vaikka sivusi ei olisi auki.
MDN huomauttaa myös, että päätepiste pitää pitää salassa, koska pelkkä sen tunteminen riittää viestien lähettämiseen kyseiselle käyttäjälle.
iPhone ja iPad
WebKit lisäsi Web Pushin web-sovelluksille iOS- ja iPadOS 16.4 -versioissa. Ilmoituksessaan se mainitsee kaksi ehtoa: sivusto on lisättävä aloitusnäytölle, ja lupa on pyydettävä käyttäjän toiminnon vastauksena, kuten Tilaa-painikkeen napautuksella. Joten iPhonessa push tavoittaa vain käyttäjät, jotka ovat asentaneet web-sovelluksesi. Katso natiivit ja progressiiviset web-sovellukset, jos haluat tietää, mitä web-sovelluksen asentaminen tarkoittaa.
Luvan pyytäminen oikein
Älä kysy lupaa ensimmäisellä käyntikerralla. Selitä ensin hyöty ("Saa muistutus tuntia ennen tuntiasi"), ja näytä selaimen kehote vasta, kun käyttäjä napauttaa painiketta. Jos joku kieltäytyy, selain ei ehkä anna kysyä uudelleen, joten ennenaikainen kehote voi menettää hänet pysyvästi.
Ajoitetut ilmoitukset tarvitsevat käynnistäjän
"Muistutus 24 tuntia ennen" tai "viikoittainen yhteenveto joka maanantai" vaatii jotain, joka ajetaan aikataulun mukaan. Se on taustatyön ongelma, josta kerrotaan taustatöiden ajamisen ohjeessa. Yleinen malli: ulkoinen ajastin kutsuu suojattua päätepistettä muutaman minuutin välein, ja päätepiste lähettää kaiken, mikä on erääntynyt.
Kehotteet tekoälyrakentajalle
Aloita sovelluksen sisäisistä:
Lisää sovelluksen sisäiset ilmoitukset. Luo notifications-taulu (käyttäjä, tyyppi, otsikko, leipäteksti, linkki, created_at, read_at). Lisää palvelinfunktio notify(userId, type, data), jota jokainen ominaisuus kutsuu. Näytä kellokuvake otsikossa lukemattomien määrällä, pudotusvalikko viimeisimmistä 20:stä ja "merkitse kaikki luetuiksi" -painike. Hae uudet 60 sekunnin välein.
Sitten asetukset ja sähköposti:
Lisää ilmoitusasetukset: jokaiselle tyypille (kommenttivastaukset, maininnat, laskutus) käyttäjä voi valita sovelluksen sisäinen, sähköposti, molemmat tai ei mitään. notify() noudattaa näitä. Lähetä sähköposti palveluntarjoajalla [PROVIDER] salaisuudella [ENV_NAME] vain palvelimella. Ryhmittele kommenttisähköpostit niin, että yksi käyttäjä saa enintään yhden sähköpostin 15 minuutin välein.
Sitten push, jos sitä tarvitset:
Lisää valinnainen web push. Rekisteröi service worker, luo VAPID-avaimet ja tallenna yksityinen avain salaisuutena. Lisää asetuksiin painike "Ota ilmoitukset käyttöön", joka pyytää lupaa vasta napautuksesta. Tallenna jokainen tilaus käyttäjää ja laitetta kohden, lähetä pushit notify()-funktiosta, kun käyttäjä on ottanut ne käyttöön, ja poista tilaukset, jotka push-palvelu ilmoittaa vanhentuneiksi.
Yleisimmät virheet
- Ilmoitukset hajallaan koodissa. Jokainen ominaisuus lähettää oman sähköpostinsa eri tavalla, ja asetuksia ei noudateta. Käytä yhtä
notify()-funktiota. - Push-luvan pyytäminen sivun latauksessa. Useimmat kieltäytyvät, eikä uutta mahdollisuutta ehkä tule.
- Ei asetuksia. Käyttäjät, jotka eivät voi kytkeä häiritseviä hälytyksiä pois, kytkevät ne kaikki pois tai lähtevät.
- Lähettäminen selaimesta. Sähköposti- ja push-avaimet kuuluvat palvelimelle.
- Vanhentuneiden push-tilausten siivoamatta jättäminen. Vanhentuneet tilaukset kertyvät ja tuhlaavat lähetyksiä.
- Arkaluonteiset tiedot ilmoitustekstissä. Lukitusnäyttö näyttää sen. "Sinulla on uusi viesti" on turvallisempi kuin itse viesti.
- Ei kirjausta siitä, mitä lähetettiin. Kun käyttäjä sanoo "en saanut sähköpostia", palveluntarjoajan viestitunnuksilla varustetut lokit auttavat selvittämään syyn.
Tarkistuslista
- Yksi palvelinpuolen
notify()-funktio, jota käytetään kaikkialla - Ilmoitustaulu, jossa on lukutila, ja kello lukemattomien määrällä
- Kanavakohtaiset asetukset tyypeittäin,
notify()noudattaa niitä - Sähköposti lähetetään palvelimelta vahvistetulla domainilla; koonti tai ryhmittely tiheille tapahtumille
- Push-lupa pyydetään vain käyttäjän toiminnon jälkeen selityksen kanssa
- Push testattu pöytäkoneella ja iPhonella, jossa sovellus on lisätty aloitusnäytölle
- Vanhentuneet push-tilaukset poistetaan
- Ei arkaluonteista sisältöä push- tai sähköpostiesikatselussa
- Ajastetuille muistutuksille on luotettava käynnistäjä
Ilmoitukset Mythexissä
Mythex ei sisällä sisäänrakennettua sähköposti- tai push-palvelua rakentamillesi sovelluksille, joten tuot oman sähköpostipalveluntarjoajan ja luot oman push-avainparisi, jotka tallennetaan projektin salaisuuksiksi. Sovelluksen sisäinen osa tarvitsee vain projektin tietokannan, jonka Mythex lisää, kun pyydät sitä. Rakenna kehotteiden kaltaisilla pyynnöillä, testaa kello ja sähköpostit Previewssa ja testaa push julkaistussa URL-osoitteessasi, koska service workerit ja push vaativat oikean HTTPS-osoitteen. Dokumentaation resepti Lähetä sähköposti sovelluksestasi sisältää aloituskehotteen. Mythex ei dokumentoi ajastettuja töitä, joten suunnittele ajastetut muistutukset ulkoisella käynnistäjällä, kuten taustatöiden ohjeessa kuvataan.
Kysymykset
Mikä on helpoin ilmoitustyyppi lisätä web-sovellukseen?
Sovelluksen sisäiset ilmoitukset: tietokantataulu ilmoituksille ja kellokuvake, joka näyttää lukemattomat. Ne eivät tarvitse kolmannen osapuolen palvelua. Sähköposti on seuraava askel ja vaatii sähköpostipalveluntarjoajan.
Voiko web-sovellus lähettää push-ilmoituksia iPhonelle?
Kyllä, rajoituksin. WebKit lisäsi Web Pushin Koti-valikkoon lisättäville web-sovelluksille iOS- ja iPadOS 16.4 -versioissa, joten käyttäjän täytyy ensin lisätä web-sovelluksesi aloitusnäytölleen, ja lupa on pyydettävä napautuksen jälkeen, esimerkiksi Tilaa-painikkeesta.
Toimivatko push-ilmoitukset, kun verkkosivu on suljettu?
Kyllä. Push API toimittaa viestit sivustosi service workerille, jonka selain käynnistää viestin saapuessa, joten sivun ei tarvitse olla auki. Käyttäjän täytyy kuitenkin ensin antaa lupa.
Miten estän ilmoituksia ärsyttämästä käyttäjiä?
Ilmoita vain asioista, joista käyttäjä välittää, yhdistä useat ilmoitukset yhdeksi viestiksi, anna ihmisten valita kanavat tyypeittäin asetuksissa ja pyydä push-lupaa vasta sen jälkeen, kun he ovat nähneet, miksi se on hyödyllinen.