როგორ დავამატოთ შეტყობინებები თქვენს აპში: აპში, ელფოსტით და push
აპში შეტყობინებების დასამატებლად დაიწყეთ აპში შეტყობინებებით: შეტყობინებების ცხრილი მონაცემთა ბაზაში და ზარის ხატულა, რომელიც წაუკითხავ ელემენტებს აჩვენებს. ელფოსტა დაამატეთ იმისთვის, რაც ადამიანმა უნდა იცოდეს, როცა არ არის აპში, ელფოსტის მომწოდებლის გამოყენებით. ვებ push კი მხოლოდ მაშინ დაამატეთ, როცა დროული გაფრთხილებები მნიშვნელოვანია, რადგან მას service worker, მომხმარებლის ნებართვა და iPhone-ზე — Home Screen-ზე შენახული აპი სჭირდება. რომელი არხიც არ უნდა გამოიყენოთ, ყველა შეტყობინება ერთ ადგილას, სერვერზე შექმენით და მომხმარებელს მისცით საშუალება აირჩიოს, რას იღებს.
ეს გზამკვლევი ადარებს არხებს, აჩვენებს მარტივ არქიტექტურას და გაძლევთ პრომპტებს AI აპის ბილდერისთვის.
ძირითადი არხები შედარებით
| არხი | როდის აღწევს მომხმარებელს | დაყენების ძალისხმევა | მუდმივი ხარჯი | საუკეთესოა |
|---|---|---|---|---|
| აპში (ზარი, toast-ები) | როცა მომხმარებელი აპს იყენებს | დაბალი | მონაცემთა ბაზის გარდა არაფერი | აქტივობა, ხსენებები, სტატუსის ცვლილებები |
| ელფოსტა | როცა ელფოსტას ამოწმებს | საშუალო: მომწოდებელი, დომენის დაყენება | მომწოდებლის ფასი თითო წერილზე | ქვითრები, დაიჯესტები, ყველაფერი მნიშვნელოვანი |
| Web push | ბრაუზერში ან დაყენებულ ვებ-აპში, დახურულ მდგომარეობაშიც | საშუალოდან მაღლამდე | ჩვეულებრივ უფასოა გაგზავნა | დროზე მგრძნობიარე გაფრთხილებები |
| SMS | თითქმის ყოველთვის | საშუალო; თანხმობის წესები მოქმედებს | თითო შეტყობინების საფასური | შეხვედრის შეხსენებები, სასწრაფო გაფრთხილებები |
| ჩატის ხელსაწყოები (Slack, Teams) | როცა სამუშაოზე არიან | დაბალიდან საშუალომდე | ჩვეულებრივ უფასოა | შიდა ინსტრუმენტები და გუნდის გაფრთხილებები |
თქვენი აპისთვის უმეტესობას სჭირდება აპში და ელფოსტა. Push და SMS მაშინ ღირს, როცა დროს დიდი მნიშვნელობა აქვს, მაგალითად ჯავშნის შეხსენება ან შეკვეთა, რომელიც მზადაა.
როგორ მუშაობს შეტყობინებების სისტემა
შეინახეთ მარტივი და ცენტრალიზებული:
- რაღაც ხდება. დაიწერა კომენტარი, გადახდა ჩაიშალა, ჯავშანი ხვალაა.
- სერვერი იძახებს ერთ ფუნქციას, მაგალითად
notify(user, type, data). - ეს ფუნქცია ამოწმებს მომხმარებლის პარამეტრებს და წერს სტრიქონს
notificationsცხრილში (ზარისთვის). - შემდეგ აგზავნის სხვა არხებით იმ ტიპზე, რომელიც მომხმარებელმა ჩართო: ელფოსტა თქვენი მომწოდებლით, push — Push API-ით.
- ფრონტენდი აჩვენებს წაუკითხავ შეტყობინებებს და მათ ნიშნავს წაკითხულად, როცა ისინი იხსნება.
ერთი შესასვლელი წერტილი ნიშნავს, რომ არხის დამატება, ტექსტის შეცვლა ან პარამეტრების პატივისცემა შეგიძლიათ კოდის ძებნის გარეშე.
რა უნდა შეინახოთ
შეტყობინებების ცხრილს ჩვეულებრივ სჭირდება: მომხმარებლის ID, ტიპი (მაგალითად comment_reply), მოკლე სათაური და ტექსტი, ბმული შესაბამის გვერდზე, შექმნის დრო და წაკითხვის დრო. ცალკე პარამეტრების ცხრილი ინახავს, რომელ არხებს სურს თითო მომხმარებელი თითო ტიპისთვის.
ახალი შეტყობინებების ჩვენება
- ჩატვირთვა გვერდის ნახვისას და განახლება ყოველ 30–60 წამში. მარტივი და საიმედოა.
- რეალურ დროში განახლება WebSockets-ით ან server-sent events-ით მყისიერად გრძნობდება, მაგრამ ზედმეტ მოძრავ ნაწილებს ამატებს. დაიწყეთ გამოკითხვით, თუ მყისიერი განახლება ნამდვილად არ გჭირდებათ.
ელფოსტის შეტყობინებები
ელფოსტას სჭირდება გამგზავნი მომწოდებელი და დამოწმებული დომენი; დეტალები აღწერილია როგორ გავაგზავნოთ ელფოსტა აპიდან გზამკვლევში. შეტყობინებებისთვის კონკრეტულად:
- გაგზავნეთ სერვერიდან, არასდროს ბრაუზერიდან მომწოდებლის გასაღებით.
- დააჯგუფეთ ხშირი მოვლენები. ერთი წერილი „3 ახალი კომენტარით“ სამ ცალკე წერილზე უკეთესია.
- შესთავაზეთ ყოველდღიური ან ყოველკვირეული დაიჯესტი დაბალი პრიორიტეტის აქტივობისთვის.
- ჩართეთ გამოწერის გაუქმების ან პარამეტრების ბმული არასავალდებულო ელფოსტებში. მარკეტინგული ელფოსტის წესები ქვეყნების მიხედვით განსხვავდება; შეამოწმეთ, რა მოქმედებს თქვენზე.
Web push შეტყობინებები
Web push საშუალებას გაძლევთ, საიტმა გაგზავნოს გაფრთხილებები, რომლებიც აპის შეტყობინებებივით ჩანს. MDN-ის Push API დოკუმენტაციის თანახმად, ეს ასე მუშაობს:
- თქვენი საიტი არეგისტრირებს service worker-ს — სკრიპტს, რომელსაც ბრაუზერი ფონურად შეუძლია გაუშვას.
- მომხმარებლის თანხმობის შემდეგ service worker იწერება
PushManager.subscribe()-ით. ბრაუზერი აბრუნებს გამოწერას endpoint-ით და დაშიფვრის გასაღებებით. - თქვენი სერვერი ინახავს ამ გამოწერას და, როცა რაღაც ხდება, აგზავნის შეტყობინებას endpoint-ზე, ჩვეულებრივ VAPID გასაღებებით ხელმოწერილს (გასაღებების წყვილი, რომელიც თქვენს სერვერს ასახელებს).
- ბრაუზერი ჩართავს თქვენს service worker-ს, რომელიც შეტყობინებას აჩვენებს, მაშინაც კი, თუ გვერდი ღია არ არის.
MDN ასევე აღნიშნავს, რომ endpoint საიდუმლო უნდა იყოს, რადგან მისი ცოდნა საკმარისია იმ მომხმარებლისთვის შეტყობინებების გასაგზავნად.
iPhone და iPad
WebKit-მა Web Push დაამატა ვებ-აპებისთვის iOS-სა და iPadOS 16.4-ში, მისი განცხადების ორი პირობით: საიტი უნდა იყოს დამატებული Home Screen-ზე, და ნებართვა უნდა მოითხოვოთ მომხმარებლის მოქმედებაზე — მაგალითად Subscribe ღილაკზე დაჭერით. ამიტომ iPhone-ზე push მხოლოდ იმ მომხმარებლებს აღწევს, ვინც ვებ-აპი დააინსტალირა. იხილეთ ნატიური და პროგრესული ვებ-აპები, რას ნიშნავს ვებ-აპის დაინსტალირება.
ნებართვის სწორად მოთხოვნა
პირველ ვიზიტზე ნუ სთხოვთ. ჯერ აუხსენით სარგებელი („მიიღეთ შეხსენება ლექციამდე ერთი საათით ადრე“), შემდეგ კი ბრაუზერის მოთხოვნა აჩვენეთ, როცა მომხმარებელი ღილაკს დააჭერს. თუ ვინმე უარს იტყვის, ბრაუზერმა შეიძლება აღარ მისცეს საშუალება, ხელახლა ჰკითხოთ, ამიტომ ნაადრევი მოთხოვნა შეიძლება სამუდამოდ დაკარგოთ.
დაგეგმილ შეტყობინებებს ესაჭიროება ტრიგერი
„შეხსენება 24 საათით ადრე“ ან „ყოველკვირეული შეჯამება ორშაბათობით“ საჭიროებს რაღაცას, რაც გეგმით გაეშვება. ეს ფონური სამუშაოს ამოცანაა, რომელსაც ფარავს როგორ გავუშვათ ფონური სამუშაოები. გავრცელებული მიდგომაა: გარე დამგეგმავი რამდენიმე წუთში ერთხელ იძახებს დაცულ endpoint-ს, რომელიც აგზავნის ყველაფერს, რაც დროა.
პრომპტები AI ბილდერისთვის
დაიწყეთ აპში შეტყობინებებით:
დაამატე აპში შეტყობინებები. შექმენი
notificationsცხრილი (user, type, title, body, link, created_at, read_at). დაამატე სერვერული ფუნქცია notify(userId, type, data), რომელსაც ყველა ფუნქცია გამოიძახებს. თავსართში აჩვენე ზარის ხატულა წაუკითხავი რაოდენობით, ჩამოსაშლელი სია ბოლო 20 შეტყობინებით და ღილაკი „ყველას წაკითხულად მონიშვნა“. ახალი შეტყობინებები ყოველ 60 წამში შეამოწმე.
შემდეგ პარამეტრები და ელფოსტა:
დაამატე შეტყობინებების პარამეტრები: ყოველი ტიპისთვის (პასუხები კომენტარებზე, ხსენებები, ბილინგი) მომხმარებელს შეუძლია აირჩიოს აპში, ელფოსტით, ორივე ან არცერთი. notify() უნდა ემორჩილებოდეს ამ პარამეტრებს. ელფოსტა გაგზავნე [PROVIDER]-ით, გასაღებით [ENV_NAME] მხოლოდ სერვერზე. დააჯგუფე კომენტარების ელფოსტები, რომ ერთ მომხმარებელს 15 წუთში მაქსიმუმ ერთი წერილი მივიდეს.
შემდეგ push, თუ გჭირდებათ:
დაამატე არასავალდებულო web push. დაარეგისტრირე service worker, შექმენი VAPID გასაღებები და პირადი გასაღები შეინახე საიდუმლოდ. პარამეტრებში დაამატე ღილაკი „შეტყობინებების ჩართვა“, რომელიც ნებართვას მხოლოდ დაჭერის შემდეგ ითხოვს. თითო მომხმარებელსა და მოწყობილობაზე შეინახე გამოწერა, push გაგზავნე notify()-დან იმ მომხმარებლებისთვის, ვინც ჩაერთო, და წაშალე გამოწერები, რომლებსაც push სერვისი ვადაგასულად მიიჩნევს.
გავრცელებული შეცდომები
- შეტყობინებები კოდში მიმობნეულია. ყოველი ფუნქცია თავისებურად აგზავნის ელფოსტას და პარამეტრები იგნორირდება. გამოიყენეთ ერთი
notify()ფუნქცია. - push-ის ნებართვის მოთხოვნა გვერდის ჩატვირთვისას. მომხმარებლების უმეტესობა უარს ამბობს, და მეორე შანსი შეიძლება არ მოგეცეთ.
- პარამეტრების გარეშე. მომხმარებლები, რომლებსაც ხმაურიანი გაფრთხილებების გამორთვა არ შეუძლიათ, ყველას თიშავენ ან მიდიან.
- გაგზავნა ბრაუზერიდან. ელფოსტისა და push-ის გასაღებები სერვერზე უნდა იყოს.
- მკვდარი push გამოწერების არ წაშლა. ვადაგასული გამოწერები გროვდება და ახალ გაგზავნებს ამცირებს.
- მგრძნობიარე დეტალები შეტყობინების ტექსტში. ჩაკეტილ ეკრანზე ის ჩანს. „გაქვთ ახალი შეტყობინება“ უფრო უსაფრთხოა, ვიდრე თავად შეტყობინება.
- არ ინახება, რა გაიგზავნა. როცა მომხმარებელი ამბობს „ელფოსტა არ მივიღე“, ჟურნალი მომწოდებლის შეტყობინების ID-ებით დაგეხმარებათ იმის გარკვევაში, რატომ.
ჩამონათვალი
- ერთი სერვერული
notify()ფუნქცია ყველგან გამოიყენება - შეტყობინებების ცხრილი წაკითხვის მდგომარეობით და ზარი წაუკითხავი რაოდენობით
- თითო ტიპზე არხის პარამეტრები, რომლებსაც
notify()პატივს სცემს - ელფოსტა სერვერიდან, დამოწმებული დომენით; დაიჯესტი ან დაჯგუფება ხშირი მოვლენებისთვის
- push-ის ნებართვა მხოლოდ მომხმარებლის მოქმედების შემდეგ, განმარტებით
- push შემოწმებულია დესკტოპზე და iPhone-ზე, Home Screen-ზე დამატებული აპით
- ვადაგასული push გამოწერები წაშლილია
- push-ისა და ელფოსტის გადახედვაში მგრძნობიარე შინაარსი არ არის
- დაგეგმილ შეხსენებებს აქვთ სანდო ტრიგერი
შეტყობინებები Mythex-ზე
Mythex არ მოგაწვდით ჩაშენებულ ელფოსტის ან push სერვისს თქვენს მიერ აგებული აპებისთვის, ამიტომ თქვენ იყენებთ საკუთარ ელფოსტის მომწოდებელს და თავად ქმნით push გასაღებებს, რომლებიც პროექტის საიდუმლოებებად ინახება. აპში ნაწილს მხოლოდ პროექტის მონაცემთა ბაზა სჭირდება, რომელსაც Mythex მაშინ ამატებს, როცა სთხოვთ. ააგეთ ზემოთ მოცემული მსგავსი პრომპტებით, შეამოწმეთ ზარი და ელფოსტები Preview-ში, ხოლო push შეამოწმეთ გამოქვეყნებულ URL-ზე, რადგან service worker-ებსა და push-ს რეალური HTTPS მისამართი სჭირდება. დოკუმენტაციის რეცეპტს ელფოსტის გაგზავნა აპიდან აქვს საწყისი პრომპტი. Mythex დაგეგმილ სამუშაოებს დოკუმენტში არ აღწერს, ამიტომ დროში გაშვებული შეხსენებები დაგეგმეთ გარე ტრიგერით, როგორც ფონური სამუშაოების გზამკვლევშია აღწერილი.
კითხვები
რომელი ტიპის შეტყობინებაა ყველაზე მარტივი ვებ-აპში დასამატებლად?
აპში შეტყობინებები: ცხრილი შეტყობინებებით მონაცემთა ბაზაში და ზარის ხატულა, რომელიც ნაკითხ შეტყობინებებს აჩვენებს. მესამე მხარის სერვისი არ სჭირდება. შემდეგი ნაბიჯი ელფოსტაა, რისთვისაც ელფოსტის მომწოდებელია საჭირო.
ვებ-აპს შეუძლია push შეტყობინებების გაგზავნა iPhone-ებზე?
დიახ, შეზღუდვებით. WebKit-მა Web Push დაამატა Home Screen-ის ვებ-აპებისთვის iOS-სა და iPadOS 16.4-ში, ამიტომ მომხმარებელმა ჯერ თქვენი ვებ-აპი უნდა დაამატოს Home Screen-ზე, ხოლო ნებართვა უნდა მოითხოვოთ დაჭერის შემდეგ, მაგალითად Subscribe ღილაკზე.
მუშაობს push შეტყობინებები, როცა ვებსაიტი დახურულია?
დიახ. Push API შეტყობინებებს საიტის service worker-ს აწვდის, რომელსაც ბრაუზერი შეტყობინების მოსვლისას ჩართავს, ასე რომ გვერდი ღია არ უნდა იყოს. მომხმარებელმა ჯერ ნებართვა უნდა მისცეს.
როგორ შევაჩერო შეტყობინებები, რომლებიც მომხმარებელს აღიზიანებს?
აცნობეთ მხოლოდ იმას, რაც მომხმარებელს აინტერესებს, ერთი ტალღის შეტყობინებები დააჯგუფეთ ერთში, მისცით საშუალება, რომ ყოველი ტიპისთვის არხი პარამეტრებში აირჩიონ, და push ნებართვა სთხოვეთ მხოლოდ მაშინ, როცა უკვე დაინახეს, რატომ არის სასარგებლო.