Notifications API og håndtering av tillatelser
Be om varslingstillatelse på riktig tidspunkt, og send nettleservarsler fra React.
Notifications API og håndtering av tillatelser er en gratis leksjon i React Academy på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i React Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i React Academy inneholder totalt 4 leksjoner.
Egenskapen Notification.permission
Notification.permission er en statisk streng som gjenspeiler gjeldende tillatelsestilstand. Den kan være "granted" (brukeren har tillatt), "denied" (brukeren har blokkert) eller "default" (det er aldri blitt spurt). Sjekk denne egenskapen før De prøver å vise varsler, slik at unødvendige feil unngås.
Be om tillatelse
Notification.requestPermission() returnerer et Promise som løses med den nye tillatelsesstrengen. Kall den bare som svar på en tydelig brukerhandling, ikke ved innlasting av siden. Nettlesere ignorerer eller undertrykker tillatelsesforespørsler som vises umiddelbart ved innlasting, og brukerne opplever dem som plagsomme når de vises uten kontekst.
Beste praksis: Be om tillatelse etter en brukerhandling
Det mest effektive mønsteret er å vise en melding i appen som forklarer fordelen, og deretter la brukeren klikke på «Aktiver varsler» før De kaller requestPermission(). Dette gir kontekst, øker andelen som godtar, og hindrer at nettleseren oppfatter nettstedet som søppelpost. Be aldri om tillatelse ved innlasting av siden.
Opprette et varsel
new Notification(title, options) oppretter og viser et systemvarsel. Det første argumentet er tittelstrengen. options-objektet er det andre argumentet og støtter egenskaper som body (undertekst), icon (URL til bilde) og tag for å unngå duplikater. Dette fungerer bare hvis tillatelsen er "granted".
Alternativer for varsler
Viktige alternativer for varsler omfatter: body for beskrivende tekst under tittelen, icon for et lite bilde, badge for det lille monokrome ikonet som vises i operativsystemets varslingsområde, image for et stort innebygd bilde, tag for å erstatte et tidligere varsel med samme tag, og requireInteraction: true for å beholde varslet til brukeren foretar en handling.
Hendelser for varsler
Notification-instansen utløser flere hendelser: onclick utløses når brukeren klikker på varslet (bruk den til å fokusere vinduet og navigere), onclose utløses når varslet lukkes, og onerror utløses hvis det oppstår et problem med å opprette det. Knytt behandlere til den returnerte instansen etter at De har kalt new Notification().
Lukke varsler programmatisk
Lagre den returnerte Notification-instansen i en variabel, og kall notification.close() for å lukke varslet programmatisk. Dette er nyttig for tidskritiske varsler som blir irrelevante etter en stund. Kombiner med setTimeout for å lukke varslet automatisk etter noen sekunder.
HTTPS-krav for varsler
Notifications API krever en sikker kontekst. På HTTP-sider er typeof Notification === 'undefined', eller API-et er fullstendig deaktivert, avhengig av nettleseren. Dette er et sikkerhetstiltak for å hindre ondsinnede nettsteder i å oversvømme brukerne med falske systemmeldinger. Sjekk alltid om API-et er tilgjengelig før De bruker det.
Bygge en useNotifications-hook
En useNotifications-hook kan eksponere to metoder: requestPermission() og showNotification(title, options). Den holder internt oversikt over gjeldende tillatelsestilstand og oppdaterer den etter en forespørsel. Komponentene kaller showNotification uten å måtte bekymre seg for tillatelsessjekker, siden hooken håndterer dette internt.
Kombinere med Visibility API
Page Visibility API eksponerer document.hidden og hendelsen visibilitychange. Varsler gir mest mening når brukeren ikke allerede ser på fanen. Sjekk document.hidden === true før De viser et varsel, slik at De unngår overflødige varsler når siden allerede er i forgrunnen.
Service workers og push-varsler
Notifications API-et som vises her, brukes til varsler som utløses lokalt fra selve siden. For push-varsler som kommer selv når siden er lukket, trenger De Push API kombinert med en service worker. Service workeren mottar push-hendelsen og kaller self.registration.showNotification() i bakgrunnen.
Verdier for Notification.permission
Hvilken av følgende er IKKE en gyldig verdi for Notification.permission?
Oppsummering av leksjonen: Notifications API
Notification.permission kan være granted, denied eller default. Be alltid om tillatelse etter en brukerhandling, ikke ved innlasting av siden. Bruk new Notification(title, options) for å opprette varsler, og håndter onclick for å fokusere vinduet. Kombiner med Visibility API for å vise varsler bare når fanen er skjult.
Lær deg React med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 88
- Leksjoner
- 324
Ofte stilte spørsmål
Er leksjonen «Notifications API og håndtering av tillatelser» gratis?
Ja – hele teksten i «Notifications API og håndtering av tillatelser» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av React Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i React Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Notifications API og håndtering av tillatelser»?
Be om varslingstillatelse på riktig tidspunkt, og send nettleservarsler fra React. Du øver på React Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med React Academy?
Ingen tidligere erfaring er nødvendig. React Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Notifications API og håndtering av tillatelser»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne React Academy-leksjonen?
Ja. Alle React Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Clipboard API: kopiere og lime inn i React
- Geolocation API i React-komponenter
- Notifications API og håndtering av tillatelser
- IntersectionObserver for rulleutløste effekter