Vadovai

Kaip pridėti pranešimus į programėlę: programėlės viduje, el. paštu ir push

Kad pridėtumėte pranešimus žiniatinklio programėlei, pradėkite nuo pranešimų programėlėje: pranešimų lentelės duomenų bazėje ir varpelio piktogramos, rodančios neperskaitytus elementus. Pridėkite el. paštą tiems dalykams, apie kuriuos žmonės turi žinoti, kai jų nėra, naudodami el. laiškų teikėją, o žiniatinklio push pridėkite tik tada, kai svarbūs laiku pateikiami įspėjimai, nes jam reikia service worker, vartotojo leidimo ir, iPhone atveju, programėlės įdėtos į pagrindinį ekraną. Kokius kanalus bebūtų naudojate, kuriant kiekvieną pranešimą vienoje vietoje serveryje ir leiskite vartotojams pasirinkti, ką gauti.

Šis vadovas palygina kanalus, parodo paprastą architektūrą ir pateikia raginimus, kuriuos galite naudoti su DI programėlių kūrimo įrankiu.

Pagrindiniai kanalai palyginti

KanalasPasiekia vartotojus, kaiDiegimo pastangosEksploatavimo kainaGeriausiai tinka
Programėlėje (varpelis, trumpi pranešimai)Jie naudoja jūsų programėlęMažosNieko, be duomenų bazėsVeikla, paminėjimai, būsenos pakeitimai
El. paštasBet kada, kai jie tikrina el. paštąVidutinės: teikėjas, domeno nustatymasKaina už laišką pagal jūsų teikėjąKvitai, suvestinės, viskas svarbu
Žiniatinklio pushNaršyklėje ar įdiegtoje žiniatinklio programėlėje, net kai uždarytaVidutinės iki didelėsPaprastai nemokamas siuntimasLaiku svarbūs įspėjimai
SMSBeveik visadaVidutinės; taikomos sutikimo taisyklėsMokestis už žinutęPriminimai apie susitikimus, skubūs įspėjimai
Pokalbių įrankiai (Slack, Teams)Jie yra darbeMažos iki vidutiniųPaprastai nemokamiVidinės priemonės ir komandos įspėjimai

Daugumai programėlių reikia programėlėje ir el. pašto. Push ir SMS verta naudoti tada, kai laikas tikrai svarbus, pavyzdžiui priminimas apie rezervaciją ar užsakymą, kuris paruoštas.

Kaip sujungiama pranešimų sistema

Laikykite ją paprastą ir centralizuotą:

  1. Kažkas įvyksta. Parašomas komentaras, nepavyksta mokėjimas, rezervacija yra rytoj.
  2. Jūsų serveris iškviečia vieną funkciją, pavyzdžiui notify(user, type, data).
  3. Ši funkcija patikrina vartotojo nuostatas ir įrašo eilutę į lentelę notifications (varpeliui).
  4. Tada siunčia kitais kanalais, kuriuos vartotojas yra įjungęs tam tipui: el. paštu per jūsų teikėją, push – per Push API.
  5. Priekinė dalis rodo neperskaitytus pranešimus ir pažymi juos kaip perskaitytus, kai juos atidaroma.

Vienas įėjimo taškas leidžia pridėti kanalą, pakeisti tekstą ar gerbti nuostatas, nieko neieškant po visą kodą.

Ką saugoti

Pranešimų lentelei paprastai reikia: vartotojo ID, tipo (pavyzdžiui comment_reply), trumpo pavadinimo ir teksto, nuorodos į atitinkamą puslapį, sukūrimo laiko ir perskaitymo laiko. Atskira nuostatų lentelė saugo, kuriuos kanalus kiekvienas vartotojas nori kiekvienam tipui.

Naujų pranešimų rodymas

  • Kraukite puslapio peržiūros metu ir tikrinkite kas 30–60 sekundžių. Paprasta ir patikima.
  • Realiojo laiko atnaujinimai su WebSockets ar server-sent events jaučiasi akimirksniu, bet prideda judančių dalių. Pradėkite nuo tikrinimo, nebent momentiniai atnaujinimai tikrai svarbūs.

El. pašto pranešimai

El. paštui reikia siuntimo teikėjo ir patvirtinto domeno; detalės aprašytos kaip siųsti el. laiškus iš savo programėlės. Pranešimams konkrečiai:

  • Siųskite iš serverio, niekada su teikėjo raktu naršyklėje.
  • Sujunkite dažnus įvykius. Vienas laiškas su „3 nauji komentarai“ yra geriau nei trys laiškai.
  • Siūlykite dienos ar savaitės suvestinę mažai svarbiai veiklai.
  • Įtraukite atsisakymo ar nuostatų nuorodą neesminiame el. laiške. Rinkodaros laiškų taisyklės skirtingose šalyse skiriasi; patikrinkite, kas taikoma jums.

Žiniatinklio push pranešimai

Žiniatinklio push leidžia jūsų svetainei siųsti įspėjimus, kurie atrodo kaip programėlės pranešimai. Pagal MDN Push API dokumentaciją tai veikia taip:

  1. Jūsų svetainė registruoja service worker – skriptą, kurį naršyklė gali vykdyti fone.
  2. Vartotojui sutikus, service worker užsiprenumeruoja per PushManager.subscribe(). Naršyklė grąžina prenumeratą su galutiniu tašku ir šifravimo raktais.
  3. Jūsų serveris išsaugo tą prenumeratą ir, kai kas nors nutinka, siunčia žinutę į galutinį tašką, paprastai pasirašytą VAPID raktais (raktų pora, identifikuojanti jūsų serverį).
  4. Naršyklė paleidžia jūsų service worker, kuris parodo pranešimą, net jei jūsų puslapis neatidarytas.

MDN taip pat pažymi, kad galutinis taškas turi būti laikomas paslaptyje, nes vien jo žinojimo pakanka siųsti žinutes tam vartotojui.

iPhone ir iPad

WebKit pridėjo Web Push žiniatinklio programėlėms iOS ir iPadOS 16.4 versijoje, su dviem sąlygomis iš jų pranešimo: svetainė turi būti pridėta prie pagrindinio ekrano, o leidimas turi būti prašomas reaguojant į vartotojo veiksmą, pavyzdžiui paspaudus mygtuką Prenumeruoti. Taigi iPhone telefone push pasiekia tik vartotojus, kurie įdiegė jūsų žiniatinklio programėlę. Kas reiškia įdiegti žiniatinklio programėlę, žr. gimtosios ir progresyvios žiniatinklio programėlės.

Kaip tinkamai prašyti leidimo

Neprašykite pirmo apsilankymo metu. Pirma paaiškinkite naudą („Gaukite priminimą valandą prieš pamoką“), tada parodykite naršyklės langą, kai vartotojas paspaudžia mygtuką. Jei kas nors atsisako, naršyklė gali neleisti paprašyti dar kartą, todėl per ankstyvas klausimas gali prarasti jį visam laikui.

Planuojamiems pranešimams reikia paleidiklio

„Priminimas 24 valandas prieš“ ar „savaitės suvestinė kiekvieną pirmadienį“ reikalauja, kad kažkas veiktų pagal grafiką. Tai fono užduočių problema, aprašyta kaip paleisti fonines užduotis. Dažnas modelis: išorinis planuoklis kas kelias minutes kviečia apsaugotą galutinį tašką, o tas galutinis taškas išsiunčia viską, kas laiku.

Raginimai jūsų DI kūrimo įrankiui

Pradėkite nuo pranešimų programėlėje:

Pridėk pranešimus programėlėje. Sukurk lentelę notifications (user, type, title, body, link, created_at, read_at). Pridėk serverio funkciją notify(userId, type, data), kurią kviečia kiekviena funkcija. Antraštėje rodyk varpelio piktogramą su neperskaitytų skaičiumi, nuleidžiamąjį sąrašą su naujausiais 20 pranešimų ir mygtuką „pažymėti visus kaip perskaitytus“. Tikrink naujus pranešimus kas 60 sekundžių.

Po to nuostatos ir el. paštas:

Pridėk pranešimų nustatymus: kiekvienam tipui (atsakymai į komentarus, paminėjimai, mokėjimai) leisk vartotojui pasirinkti programėlę, el. paštą, abu ar nieką. notify() privalo tai gerbti. Siųsk el. laiškus per [TEIKĖJAS], naudodamas paslaptį [ENV_NAME] tik serveryje. Sugrupuok komentarų el. laiškus, kad vienas vartotojas gautų daugiausia vieną laišką per 15 minučių.

Tada push, jei jo reikia:

Pridėk pasirinktinius žiniatinklio push. Užregistruok service worker, sugeneruok VAPID raktus ir privatų raktą išsaugok kaip paslaptį. Nustatymuose pridėk mygtuką „Įjungti pranešimus“, kuris prašo leidimo tik paspaudus. Kiekvieno vartotojo ir įrenginio prenumeratą saugok atskirai, siųsk push iš notify(), kai vartotojas tam pritarė, o prenumeratas, kurias push paslauga praneša kaip pasibaigusias, ištrink.

Dažniausios klaidos

  • Pranešimai išbarstyti po kodą. Kiekviena funkcija siunčia savo el. laišką kitaip, o nuostatos ignoruojamos. Naudokite vieną funkciją notify().
  • Push leidimo prašymas įkraunant puslapį. Dauguma žmonių atsisako, o kito progos gali nebūti.
  • Jokių nuostatų. Vartotojai, kurie negali išjungti erzinančių įspėjimų, išjungia visus arba išeina.
  • Siuntimas iš naršyklės. El. pašto ir push raktai priklauso serveriui.
  • Negyvų push prenumeratų neišvalymas. Pasibaigusios prenumeratos kaupiasi ir eikvoja siuntimus.
  • Jautri informacija pranešimo tekste. Užrakinimo ekranai ją rodo. „Turite naują žinutę“ saugiau nei pati žinutė.
  • Jokio įrašo apie tai, kas išsiųsta. Kai vartotojas sako „Aš negavau laiško“, žurnalai su teikėjo žinutės ID padeda išsiaiškinti priežastį.

Kontrolinis sąrašas

  • Viena serverio pusės funkcija notify(), naudojama visur
  • Pranešimų lentelė su skaitymo būsena ir varpelis su neperskaitytų skaičiumi
  • Kiekvieno tipo kanalų nuostatos, kurias gerbia notify()
  • El. paštas siunčiamas iš serverio su patvirtintu domenu; suvestinė ar grupavimas dažniems įvykiams
  • Push leidimas prašomas tik po vartotojo veiksmo, su paaiškinimu
  • Push išbandytas darbalaukyje ir iPhone telefone su programėle, pridėta prie pagrindinio ekrano
  • Pasibaigusios push prenumeratos pašalintos
  • Push ar el. laiško peržiūrose nėra jautraus turinio
  • Planuojami priminimai turi patikimą paleidiklį

Pranešimai Mythex

Mythex nėra įtraukto el. laiškų ar push paslaugos jūsų sukurtoms programėlėms, todėl atsinešate savo el. laiškų teikėją ir patys generuojate push raktus, saugomus kaip projekto paslaptys. Programėlės viduje esanti dalis reikalauja tik projekto duomenų bazės, kurią Mythex prideda, kai to paprašote. Kurkite pagal aukščiau pateiktus raginimus, bandykite varpelį ir el. laiškus Peržiūroje, o push bandykite savo publikuotame URL, nes service worker ir push reikalauja tikro HTTPS adreso. Dokumentacijos receptas Siųsti el. laiškus iš savo programėlės turi pradinį raginimą. Mythex nedokumentuoja planuojamų užduočių, todėl planuokite laiku paleidžiamus priminimus su išoriniu paleidikliu, kaip aprašyta kaip paleisti fonines užduotis.

Klausimai

Kokį pranešimą lengviausia pridėti žiniatinklio programėlei?

Pranešimus programėlėje: lentelę su pranešimais duomenų bazėje ir varpelio piktogramą, rodančią neperskaitytus. Jiems nereikia trečiosios šalies paslaugos. Kitas žingsnis – el. paštas, kuriam reikia el. laiškų teikėjo.

Ar žiniatinklio programėlė gali siųsti push pranešimus iPhone telefonams?

Taip, su apribojimais. WebKit pridėjo Web Push pagrindiniam ekranui įdėtoms žiniatinklio programėlėms iOS ir iPadOS 16.4 versijoje, todėl vartotojas pirmiausia turi pridėti jūsų žiniatinklio programėlę prie pagrindinio ekrano, o leidimas turi būti prašomas po paspaudimo, pavyzdžiui mygtuku Prenumeruoti.

Ar push pranešimai veikia, kai svetainė uždaryta?

Taip. Push API pranešimus pristato į jūsų svetainės service worker, kurį naršyklė paleidžia, kai atkeliauja žinutė, todėl puslapis nebūtinai turi būti atidarytas. Vartotojas pirmiausia turi suteikti leidimą.

Kaip nustoti erzinti vartotojus pranešimais?

Pranešinėkite tik apie tai, kas vartotojui rūpi, sujunkite pranešimų antplūdžius į vieną žinutę, leiskite žmonėms nustatyti kanalus kiekvienam tipui ir prašykite push leidimo tik tada, kai jie jau matė, kodėl tai naudinga.

Mythex · Pricing · Kurkite bet ką su dirbtiniu intelektu · Svetainių ir programėlių šablonai · Mythex palyginimas · Programėlių kūrimo su dirbtiniu intelektu žodynėlis · Nemokami programėlių kūrimo su dirbtiniu intelektu įrankiai · English

English አማርኛ العربية Български বাংলা Bosanski Català Čeština Dansk Deutsch Ελληνικά Español Español (España) Eesti فارسی Suomi Français Français (Canada) ગુજરાતી हिन्दी Hrvatski Magyar Հայերեն Bahasa Indonesia Íslenska Italiano 日本語 ქართული Қазақ тілі ಕನ್ನಡ 한국어 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 简体中文 繁體中文(香港) 繁體中文(台灣)